home *** CD-ROM | disk | FTP | other *** search
- #ifndef lint
- static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/90";
-
- #endif
- #define YYBYACC 1
- #line 1 "dylan.y"
- /* Emacs: -*- Fundamental -*- */
-
- /*
- This software is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Original authorship and copyright notices follows
-
- */
-
- /* interim-dylan.y -- dylan phrase grammar from 5/12/94 interim report */
-
- /*
- * this grammar is, i believe, an accurate translation of the
- * BNF grammar in the appendix to the 5/12/94 interim report
- * into yacc-friendly format. the differences are
- *
- * + where the BNF used ellipses to indicate repitition,
- * (right) recursive productions have been added.
- *
- * + the grammar has been rearranged to eliminate ambiguities
- * (what yacc calls conflicts); this grammar should have
- * no shift/reduce or reduce/reduce conflicts. occasional
- * comments explain what had to be done in the dicier of
- * situations.
- *
- * + according to notes from the partners' mailing list, a
- * few productions were omitted from the grammar in the
- * report; these are flagged with the comment "omitted"
- * in this grammar.
- *
- * paul haahr
- * 22 may 1994
- */
-
- /*
- Marlais Revisions Copyright 1994, Joseph N. Wilson. All Rights Reserved.
-
- Permission to use, copy, and modify this software and its
- documentation is hereby granted only under the following terms and
- conditions. Both the above copyright notice and this permission
- notice must appear in all copies of the software, derivative works
- or modified version, and both notices must appear in supporting
- documentation. Users of this software agree to the terms and
- conditions set forth in this notice.
- */
-
- /*
- * Modified this to have built-in rules for control constructs.
- * I'll save macro implementation for a little later.
- *
- * jnw@cis.ufl.edu
- * 15 July 1994
- */
-
- #ifdef MACOS
- #define YYDEBUG 0
- #endif
-
- /* #define OPTIMIZE_SPECIALIZERS */
-
- #include "boolean.h"
- #include "bytestring.h"
- #include "error.h"
- #include "gc.h"
- #include "globaldefs.h"
- #include "list.h"
- #include "number.h"
- #include "object.h"
- #include "symbol.h"
- #include "table.h"
- #include "vector.h"
- #include "yystype.h"
-
- #define alloca GC_malloc
-
- void yyerror (char *);
- static Object append_bang (Object l1, Object l2);
-
- extern char *yytext;
- extern Object *parse_value_ptr;
-
- extern int yylineno;
-
- void push_intermediate_words (Object begin_word);
- void pop_intermediate_words (void);
-
- Object binding_stack;
- Object symtab;
- Object methnames, methdefs;
- static void push_bindings ();
- static void pop_bindings ();
- static Object bindings_top ();
- static Object bindings_increment ();
- static Object gensym (int i);
- static Object make_setter_expr (Object place, Object value);
- static int allocation_word (Object word);
-
- #line 115 "y.tab.c"
- #define SYMBOL 257
- #define KEYWORD 258
- #define LITERAL 259
- #define STRING 260
- #define COLON_EQUAL 261
- #define GREATER_EQUAL 262
- #define LESSER_EQUAL 263
- #define NOT_EQUAL 264
- #define EQUAL_EQUAL 265
- #define EQUAL_ARROW 266
- #define COLON_COLON 267
- #define QUESTION_QUESTION 268
- #define ELLIPSIS 269
- #define UNRECOGNIZED 270
- #define EOF_TOKEN 271
- #define HASH_T 272
- #define HASH_F 273
- #define HASH_BRACKET 274
- #define HASH_PAREN 275
- #define HASH_NEXT 276
- #define HASH_REST 277
- #define HASH_KEY 278
- #define HASH_ALL_KEYS 279
- #define DEFINE 280
- #define END 281
- #define GENERIC 282
- #define HANDLER 283
- #define LET 284
- #define LOCAL 285
- #define METHOD 286
- #define OTHERWISE 287
- #define CLASS 288
- #define CONSTANT 289
- #define LIBRARY 290
- #define MODULE 291
- #define VARIABLE 292
- #define TEST 293
- #define SLOT 294
- #define BEGIN_TOKEN 295
- #define CASE 296
- #define IF 297
- #define UNLESS 298
- #define UNTIL 299
- #define WHILE 300
- #define BLOCK 301
- #define FOR 302
- #define SELECT 303
- #define USE 304
- #define EXPORT 305
- #define CREATE 306
- #define ELSE 307
- #define ELSEIF 308
- #define BY 309
- #define FINALLY 310
- #define THEN 311
- #define IN 312
- #define FROM 313
- #define TO 314
- #define ABOVE 315
- #define BELOW 316
- #define CLEANUP 317
- #define EXCEPTION 318
- #define YYERRCODE 256
- short yylhs[] =
- {-1,
- 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 5, 5, 8, 6, 7, 7, 10,
- 10, 10, 9, 9, 9, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 11, 11, 12, 12, 14, 14, 13, 13, 13,
- 13, 19, 19, 19, 19, 16, 16, 16, 16, 18,
- 18, 20, 20, 20, 20, 21, 21, 21, 21, 21,
- 21, 25, 25, 28, 28, 29, 29, 31, 31, 31,
- 30, 30, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 41, 32, 42, 45, 33, 43, 43, 44, 44,
- 44, 44, 34, 35, 48, 52, 48, 51, 51, 54,
- 51, 51, 51, 55, 51, 50, 50, 57, 59, 36,
- 58, 58, 60, 64, 60, 63, 63, 65, 63, 63,
- 63, 66, 63, 62, 62, 62, 37, 38, 70, 73,
- 76, 39, 77, 77, 71, 71, 78, 78, 78, 81,
- 81, 81, 81, 82, 82, 72, 72, 72, 72, 74,
- 74, 83, 85, 40, 84, 84, 84, 87, 87, 88,
- 88, 46, 46, 47, 47, 49, 49, 61, 61, 68,
- 68, 69, 69, 75, 75, 86, 86, 2, 2, 2,
- 2, 95, 2, 97, 2, 2, 94, 101, 101, 101,
- 103, 103, 105, 105, 105, 104, 104, 91, 92, 96,
- 107, 107, 109, 109, 109, 110, 111, 112, 115, 115,
- 100, 67, 67, 114, 114, 118, 22, 22, 22, 106,
- 106, 106, 120, 120, 120, 120, 122, 122, 122, 123,
- 123, 123, 124, 124, 124, 124, 121, 121, 125, 125,
- 125, 127, 127, 129, 4, 4, 133, 4, 130, 130,
- 131, 132, 135, 132, 93, 93, 136, 136, 136, 137,
- 137, 137, 80, 17, 17, 99, 99, 138, 134, 139,
- 139, 140, 141, 141, 143, 143, 144, 144, 145, 56,
- 56, 23, 23, 102, 102, 98, 98, 108, 108, 53,
- 53, 79, 79, 89, 89, 15, 15, 27, 27, 26,
- 26, 128, 128, 116, 116, 90, 90, 117, 117, 113,
- 113, 142, 142, 126, 126, 119, 119,
- };
- short yylen[] =
- {2,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
- 1, 2, 2, 0, 1, 0, 2, 1, 3, 0,
- 1, 3, 1, 1, 1, 1, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 1, 1, 1, 2, 1, 1, 4, 4, 3,
- 1, 4, 4, 3, 1, 2, 1, 4, 3, 3,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 3,
- 3, 1, 2, 1, 2, 1, 3, 1, 3, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 4, 0, 0, 10, 0, 1, 0, 1,
- 2, 6, 7, 4, 0, 0, 4, 0, 1, 0,
- 4, 1, 3, 0, 5, 2, 2, 0, 0, 10,
- 0, 2, 0, 0, 4, 0, 1, 0, 4, 1,
- 3, 0, 5, 2, 6, 2, 7, 7, 0, 0,
- 0, 12, 2, 3, 0, 1, 5, 3, 5, 0,
- 2, 2, 2, 0, 2, 0, 2, 2, 2, 0,
- 2, 0, 0, 10, 0, 1, 3, 2, 5, 1,
- 4, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 4, 4, 3,
- 3, 0, 5, 0, 4, 10, 6, 0, 1, 3,
- 1, 4, 0, 2, 2, 3, 4, 5, 2, 5,
- 0, 3, 1, 1, 1, 3, 2, 2, 1, 2,
- 3, 1, 3, 1, 3, 0, 6, 7, 9, 3,
- 5, 7, 1, 3, 3, 1, 2, 4, 1, 2,
- 4, 1, 1, 3, 2, 1, 2, 3, 1, 1,
- 3, 3, 2, 2, 2, 5, 0, 3, 1, 4,
- 1, 2, 0, 5, 3, 5, 1, 3, 2, 1,
- 3, 2, 2, 1, 1, 0, 1, 2, 1, 1,
- 2, 3, 1, 3, 1, 3, 1, 3, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 2, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- 1, 0, 1, 0, 1, 0, 1,
- };
- short yydefred[] =
- {0,
- 0, 274, 42, 66, 0, 0, 46, 7, 47, 11,
- 68, 69, 0, 0, 0, 0, 257, 0, 1, 2,
- 3, 4, 5, 6, 92, 0, 94, 0, 0, 0,
- 162, 139, 118, 0, 275, 0, 0, 10, 26, 43,
- 0, 0, 63, 51, 61, 62, 65, 67, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 12, 13, 0,
- 73, 0, 82, 81, 0, 309, 0, 0, 0, 311,
- 0, 0, 194, 0, 0, 0, 317, 0, 0, 0,
- 0, 255, 0, 0, 0, 0, 0, 0, 0, 106,
- 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 0, 0, 0, 0, 75, 60,
- 71, 0, 70, 0, 0, 220, 191, 0, 190, 0,
- 0, 0, 192, 0, 0, 0, 0, 0, 55, 0,
- 0, 273, 325, 0, 293, 0, 258, 0, 0, 0,
- 246, 0, 0, 0, 233, 236, 239, 242, 0, 0,
- 15, 0, 291, 117, 116, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 41, 0,
- 0, 0, 307, 0, 50, 77, 79, 80, 0, 195,
- 0, 0, 189, 0, 188, 0, 269, 0, 0, 0,
- 0, 0, 0, 0, 0, 278, 0, 0, 0, 0,
- 0, 0, 250, 0, 245, 0, 0, 247, 0, 0,
- 64, 93, 23, 0, 24, 17, 0, 177, 104, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 146, 0,
- 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
- 0, 213, 214, 215, 0, 0, 209, 0, 0, 193,
- 268, 0, 0, 0, 321, 0, 0, 0, 54, 0,
- 256, 263, 0, 0, 277, 0, 244, 0, 253, 313,
- 0, 0, 0, 0, 234, 235, 0, 110, 0, 301,
- 107, 0, 0, 0, 0, 0, 0, 0, 0, 140,
- 0, 143, 0, 0, 0, 0, 119, 0, 59, 0,
- 0, 217, 218, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 260, 281, 52, 53, 0, 238, 241, 252,
- 0, 251, 0, 0, 0, 0, 19, 0, 0, 114,
- 113, 98, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 144, 0, 0, 0, 0, 0, 58, 216, 0,
- 299, 0, 212, 0, 0, 0, 0, 315, 0, 0,
- 0, 0, 0, 201, 0, 0, 0, 282, 264, 0,
- 0, 0, 327, 0, 227, 0, 111, 0, 0, 0,
- 95, 175, 103, 183, 138, 181, 137, 0, 0, 163,
- 0, 0, 0, 0, 0, 0, 0, 0, 225, 210,
- 0, 0, 208, 0, 221, 0, 0, 204, 0, 205,
- 0, 0, 0, 289, 0, 323, 0, 0, 272, 0,
- 0, 228, 22, 115, 101, 0, 0, 168, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 149, 0, 0,
- 0, 124, 0, 297, 0, 0, 231, 223, 0, 0,
- 206, 295, 0, 200, 0, 284, 0, 0, 271, 0,
- 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
- 136, 0, 0, 134, 196, 0, 207, 305, 197, 202,
- 286, 288, 229, 0, 173, 96, 0, 0, 187, 164,
- 161, 141, 0, 179, 120, 0, 0, 0, 232, 0,
- 0, 169, 0, 0, 128, 0, 125, 102, 171, 185,
- 142, 0, 0, 0, 132, 131, 135, 129, 0, 133,
- };
- short yydgoto[] =
- {34,
- 35, 233, 234, 235, 160, 161, 236, 162, 241, 347,
- 39, 40, 41, 42, 192, 193, 43, 44, 138, 45,
- 46, 85, 146, 47, 48, 68, 65, 61, 66, 67,
- 70, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 86, 91, 353, 401, 447, 506, 403, 89, 239, 90,
- 242, 167, 301, 348, 398, 164, 97, 317, 367, 461,
- 515, 462, 518, 493, 533, 539, 463, 407, 405, 96,
- 248, 310, 361, 488, 531, 523, 249, 250, 312, 81,
- 417, 458, 95, 410, 450, 510, 411, 484, 471, 76,
- 205, 203, 82, 270, 206, 200, 128, 465, 286, 330,
- 382, 473, 383, 384, 428, 267, 260, 372, 261, 262,
- 263, 264, 274, 322, 77, 379, 153, 294, 392, 154,
- 155, 156, 157, 158, 225, 142, 226, 289, 290, 140,
- 281, 147, 83, 211, 337, 136, 393, 143, 275, 276,
- 388, 435, 436, 437, 438,
- };
- short yysindex[] =
- {2681,
- -46, 0, 0, 0, -249, 3475, 0, 0, 0, 0,
- 0, 0, 327, 327, -86, 643, 0, 87, 0, 0,
- 0, 0, 0, 0, 0, 2502, 0, 112, 117, 124,
- 0, 0, 0, 0, 0, 109, 2152, 0, 0, 0,
- 8, 3569, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -249,
- 0, 3901, 0, 0, 90, 0, 143, 169, 25, 0,
- -28, 1548, 0, 1548, -26, -92, 0, 1101, 3616, -48,
- 175, 0, -74, 2201, -60, 0, -13, 3142, -42, 0,
- 217, 3475, 3475, 3475, 232, 242, 247, 0, 3475, 3475,
- 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475,
- 3475, 3475, 3475, 0, 3522, 3522, 337, 8, 0, 0,
- 0, 327, 0, 327, 327, 0, 0, 337, 0, 252,
- 337, 337, 0, 337, 260, 266, 3569, 108, 0, 257,
- 3569, 0, 0, 3475, 0, 337, 0, 337, 337, 871,
- 0, 10, 279, 277, 0, 0, 0, 0, -74, 53,
- 0, 3332, 0, 0, 0, 33, 3141, 3475, 3926, 3936,
- 3961, 337, 337, 3475, 4086, 2209, 2209, 4, 4, 4,
- 4, 4, 4, 4, -6, -6, 243, 243, 0, 3475,
- 3996, 305, 0, 259, 0, 0, 0, 0, -59, 0,
- 3522, 316, 0, 87, 0, 337, 0, 1101, 300, 8,
- 318, 3522, 3522, 337, 3475, 0, 4086, 319, 321, 322,
- 337, 91, 0, 308, 0, 328, 3475, 0, 110, 2201,
- 0, 0, 0, 4086, 0, 0, 324, 0, 0, 2502,
- 331, 334, 3986, 0, 0, 0, 339, -111, 0, 342,
- -45, 2362, 4021, 3522, 0, 0, 337, 337, 337, 94,
- 338, 0, 0, 0, 340, 2201, 0, 118, 360, 0,
- 0, 3475, 145, 364, 0, 318, 366, 315, 0, 4086,
- 0, 0, 72, 23, 0, 308, 0, 3475, 0, 0,
- 865, 4086, 1585, 334, 0, 0, 3332, 0, 2728, 0,
- 0, 0, 120, 137, 139, 0, 3475, 3475, 3475, 0,
- 337, 0, 3475, 3475, 3475, 3475, 0, 3522, 0, 318,
- 377, 0, 0, 119, -59, 0, 382, -74, 3475, -212,
- 4086, 3379, 0, 0, 0, 0, -74, 0, 0, 0,
- 4086, 0, 1330, 365, 0, 367, 0, 3141, 3142, 0,
- 0, 0, -58, 133, 134, 132, -22, 4086, 4086, 4086,
- 394, 0, 1391, 4086, -3, 4086, 395, 0, 0, 337,
- 0, 337, 0, 163, 182, 337, 4032, 0, 408, -205,
- -207, 181, 406, 0, 174, 337, 4086, 0, 0, 337,
- 425, 429, 0, 0, 0, 3332, 0, 3141, 0, 434,
- 0, 0, 0, 0, 0, 0, 0, 0, 436, 0,
- 420, 0, 3475, 3475, 3475, 3475, 172, 3426, 0, 0,
- 191, 1622, 0, 3475, 0, -107, 442, 0, -207, 0,
- 199, -212, 337, 0, 363, 0, 447, 226, 0, 1330,
- 334, 0, 0, 0, 0, 3475, 213, 0, 337, 214,
- -22, 186, 4086, 4086, 4086, 4086, 3475, 0, 3475, -13,
- 216, 0, 234, 0, 337, 1330, 0, 0, 442, 3522,
- 0, 0, 337, 0, 442, 0, 337, 337, 0, 0,
- 4080, 201, 236, 471, 212, 0, 0, 237, 4086, 3890,
- 0, 225, 3188, 0, 0, 474, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 337, 0, 0, 0,
- 0, 0, 3475, 0, 0, 3426, 461, 334, 0, -58,
- 442, 0, 227, 491, 0, 2776, 0, 0, 0, 0,
- 0, 267, 3188, 4032, 0, 0, 0, 0, 3188, 0,
- };
- short yyrindex[] =
- {0,
- 0, 0, 0, 0, 298, 0, 0, 0, 0, 0,
- 0, 0, 443, 496, -71, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 273, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 464,
- 0, 0, 0, 0, 0, 0, 445, 0, 499, 0,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, -27,
- 0, 0, 916, 506, 0, 3001, 2823, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 339, 0, 0, 1283, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 507, 0, 0, 504, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 525,
- 0, 22, 0, 526, 0, 0, 0, 0, 530, 0,
- 0, 0, 0, 0, 0, 596, 288, 0, 0, 0,
- 0, 0, 74, 0, 235, 2137, 2203, 1676, 1742, 1824,
- 1908, 1974, 2055, 2068, 1512, 1589, 1380, 1446, 0, 3836,
- -38, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 339, 0, 0, 0, 0, 0, 0, 0, 0, 1296,
- 543, 339, 0, 0, 0, 0, 354, 368, 552, 554,
- 115, 0, 0, 136, 0, 562, 0, 0, 2871, 0,
- 0, 0, 0, 384, 0, 0, 400, 0, 0, -41,
- 323, 336, 0, 3001, 3001, 3001, 0, 577, 0, 151,
- 0, 578, -37, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 506, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 21, 0, 0, 0, 396,
- 0, 0, 0, 0, 0, 136, 0, 0, 0, 0,
- 0, 156, 0, 3238, 0, 0, 440, 0, 288, 0,
- 0, 2361, 0, 0, 0, 2265, 0, 0, 0, 0,
- 281, 0, 0, 0, 0, 0, 0, 0, 0, 563,
- 572, 0, 0, 1093, 297, 3001, 0, 149, 591, -156,
- 620, 0, 0, 0, 0, 0, 916, 0, 0, 0,
- 160, 0, 340, 0, 3001, 669, 0, 288, -33, 0,
- 0, 0, 352, 693, 1054, 1151, 369, 603, 604, 605,
- 0, 0, 0, 26, -35, 606, 0, 0, 0, 0,
- 0, 1411, 0, 0, 1441, 165, -36, 0, 0, 357,
- 357, 0, 371, 0, 0, 523, 20, 0, 0, 0,
- 612, 0, 0, 3001, 0, 440, 0, 288, 3285, 0,
- 0, 0, 0, 0, 0, 0, 0, 3094, 0, 0,
- -42, 2312, 0, 0, 0, 0, 48, 378, 0, 0,
- 1756, 0, 0, 0, 0, 357, -30, 0, 357, 0,
- 2557, -156, 0, 0, 0, 0, 535, -1, 0, 0,
- 3238, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 369, 385, 129, 95, 154, 222, 0, 0, 0, 2823,
- 0, 0, 0, 0, 1411, 340, 0, 0, -30, 0,
- 0, 0, 1411, 0, -30, 0, 0, 0, 0, 3001,
- 0, 759, 622, 0, 825, 0, 3001, 0, 283, 0,
- 0, 922, 386, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2417, 0, 0, 0, 3094, 0, 0,
- 0, 0, 0, 0, 0, -29, 387, 336, 0, 352,
- 628, 0, 988, 0, 0, 386, 0, 0, 0, 0,
- 0, 0, 386, -44, 0, 0, 0, 0, 386, 0,
- };
- short yygindex[] =
- {0,
- 0, 670, 1, 673, 2421, -265, 0, 0, -162, 278,
- 0, 0, -4, 0, -34, -91, 12, 0, 0, 601,
- 6, 478, -149, 0, 0, 0, 0, 624, 566, 17,
- 570, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 176, 0, 0, 0, 0, 0, -180,
- -266, 0, -286, 0, 0, 238, 0, 0, 0, 0,
- 0, -344, -461, 0, 0, 0, -327, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 388, 0, 0, -55,
- 0, 0, 0, 246, 0, 0, 0, 0, -401, 0,
- 559, 0, 13, 0, 0, 0, 0, 0, -299, 0,
- 268, 0, 0, 0, -306, 0, 390, 0, 0, 0,
- 0, 0, 389, -247, 640, 0, 446, 0, 250, 0,
- 489, 493, 441, 448, 450, 590, 0, 457, 0, 0,
- 0, 407, 0, 608, 0, 538, 311, 0, 480, 0,
- 0, 0, 284, 0, 282,
- };
-
- #define YYTABLESIZE 4351
- short yytable[] =
- {237,
- 37, 378, 57, 56, 222, 150, 62, 345, 150, 231,
- 60, 323, 58, 324, 25, 313, 324, 109, 64, 64,
- 57, 56, 135, 385, 194, 25, 88, 80, 304, 127,
- 69, 324, 351, 324, 100, 112, 352, 118, 112, 110,
- 111, 109, 287, 111, 380, 112, 110, 115, 109, 429,
- 111, 426, 427, 117, 57, 56, 105, 108, 104, 298,
- 283, 280, 324, 283, 536, 324, 148, 497, 125, 148,
- 124, 538, 420, 500, 430, 381, 423, 540, 283, 280,
- 381, 397, 381, 80, 127, 80, 129, 113, 154, 80,
- 113, 154, 169, 170, 171, 152, 468, 113, 116, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 145, 191, 191, 251, 350, 529,
- 101, 278, 419, 287, 198, 385, 84, 64, 195, 64,
- 64, 444, 210, 445, 346, 151, 210, 203, 151, 199,
- 197, 69, 202, 204, 217, 207, 307, 212, 292, 429,
- 469, 92, 135, 214, 480, 276, 93, 204, 276, 219,
- 220, 224, 319, 94, 276, 495, 265, 98, 243, 147,
- 71, 525, 147, 499, 252, 276, 312, 277, 376, 312,
- 381, 535, 121, 247, 80, 524, 122, 308, 309, 131,
- 253, 302, 292, 132, 152, 133, 248, 152, 213, 248,
- 254, 191, 72, 254, 73, 74, 75, 292, 276, 123,
- 316, 145, 191, 191, 316, 280, 316, 269, 141, 80,
- 159, 222, 150, 276, 59, 279, 368, 292, 71, 222,
- 130, 527, 285, 346, 27, 144, 25, 344, 166, 109,
- 88, 152, 57, 56, 257, 258, 259, 25, 399, 400,
- 304, 127, 163, 324, 191, 251, 168, 99, 102, 103,
- 106, 107, 153, 150, 150, 153, 314, 315, 320, 321,
- 321, 172, 331, 150, 227, 27, 141, 152, 27, 324,
- 324, 173, 324, 148, 324, 324, 174, 391, 341, 324,
- 324, 201, 219, 27, 408, 409, 219, 72, 219, 349,
- 150, 151, 224, 208, 80, 154, 209, 358, 359, 360,
- 414, 415, 416, 363, 364, 365, 366, 215, 191, 229,
- 230, 303, 80, 155, 148, 148, 155, 27, 238, 377,
- 517, 145, 387, 232, 439, 72, 113, 72, 72, 72,
- 72, 72, 72, 72, 72, 255, 154, 154, 149, 150,
- 151, 256, 151, 265, 80, 266, 72, 72, 72, 72,
- 272, 273, 282, 517, 283, 284, 467, 262, 288, 287,
- 517, 291, 145, 145, 324, 293, 517, 475, 498, 306,
- 326, 321, 297, 285, 391, 311, 147, 285, 72, 299,
- 72, 72, 300, 151, 151, 261, 325, 434, 328, 329,
- 354, 80, 332, 151, 333, 292, 335, 336, 302, 371,
- 391, 152, 265, 453, 454, 455, 456, 355, 377, 356,
- 370, 72, 375, 394, 377, 396, 262, 147, 147, 292,
- 402, 406, 404, 80, 412, 418, 292, 292, 292, 292,
- 292, 292, 25, 421, 80, 276, 481, 422, 425, 302,
- 302, 80, 152, 152, 261, 292, 292, 489, 292, 490,
- 483, 431, 152, 74, 432, 292, 292, 433, 440, 441,
- 191, 276, 276, 446, 276, 449, 285, 80, 451, 153,
- 457, 276, 276, 464, 285, 470, 472, 476, 434, 434,
- 477, 478, 27, 482, 485, 487, 492, 505, 20, 494,
- 27, 74, 507, 74, 74, 74, 74, 74, 74, 74,
- 74, 508, 509, 377, 519, 27, 377, 512, 521, 526,
- 153, 153, 74, 74, 74, 74, 534, 514, 530, 292,
- 153, 532, 537, 27, 27, 308, 310, 76, 303, 78,
- 155, 27, 27, 27, 27, 27, 318, 267, 27, 27,
- 27, 27, 27, 105, 74, 72, 74, 74, 72, 72,
- 72, 72, 72, 72, 259, 243, 319, 292, 108, 292,
- 292, 292, 292, 292, 292, 292, 292, 211, 72, 303,
- 303, 155, 155, 320, 63, 4, 5, 74, 292, 292,
- 292, 292, 237, 2, 240, 176, 72, 72, 11, 12,
- 13, 14, 249, 112, 72, 72, 72, 72, 72, 72,
- 72, 72, 72, 72, 72, 72, 300, 156, 121, 266,
- 292, 320, 292, 292, 19, 20, 21, 22, 23, 24,
- 224, 314, 99, 176, 265, 176, 176, 176, 176, 176,
- 176, 176, 176, 159, 157, 158, 122, 322, 262, 165,
- 203, 199, 270, 292, 176, 176, 176, 176, 123, 285,
- 265, 265, 170, 265, 25, 160, 126, 130, 304, 36,
- 265, 265, 38, 443, 262, 262, 261, 262, 266, 139,
- 18, 268, 78, 119, 262, 262, 176, 196, 176, 176,
- 25, 25, 174, 25, 198, 528, 486, 491, 362, 474,
- 25, 25, 261, 261, 218, 261, 18, 18, 369, 18,
- 126, 327, 261, 261, 373, 496, 18, 18, 295, 176,
- 20, 74, 296, 338, 74, 74, 74, 74, 74, 74,
- 174, 339, 174, 174, 174, 174, 174, 174, 174, 174,
- 342, 228, 340, 389, 74, 271, 20, 20, 216, 20,
- 479, 174, 174, 174, 174, 334, 20, 20, 172, 502,
- 501, 0, 74, 74, 0, 0, 0, 0, 0, 0,
- 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 0, 174, 0, 174, 174, 292, 0, 0,
- 292, 292, 292, 292, 292, 292, 172, 0, 172, 172,
- 172, 172, 172, 172, 172, 172, 0, 0, 0, 0,
- 292, 0, 0, 0, 0, 0, 174, 172, 172, 172,
- 172, 0, 0, 0, 186, 0, 0, 0, 292, 292,
- 0, 0, 0, 0, 0, 0, 292, 292, 292, 292,
- 292, 292, 292, 292, 292, 292, 292, 292, 0, 172,
- 0, 172, 172, 176, 0, 0, 176, 176, 176, 176,
- 176, 176, 186, 0, 186, 186, 186, 186, 186, 186,
- 186, 186, 0, 0, 0, 0, 176, 0, 0, 0,
- 0, 0, 172, 186, 186, 186, 186, 0, 0, 0,
- 0, 0, 0, 0, 176, 176, 0, 0, 0, 2,
- 266, 0, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 222, 186, 0, 186, 186, 0,
- 0, 178, 0, 0, 0, 79, 266, 266, 0, 266,
- 19, 20, 21, 22, 23, 24, 266, 266, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 186, 21,
- 174, 0, 0, 174, 174, 174, 174, 174, 174, 178,
- 0, 178, 178, 178, 178, 178, 178, 178, 178, 0,
- 0, 0, 0, 174, 0, 21, 21, 0, 21, 0,
- 178, 178, 178, 178, 0, 21, 21, 184, 0, 0,
- 0, 174, 174, 0, 0, 0, 0, 0, 0, 174,
- 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
- 174, 0, 178, 0, 178, 178, 172, 0, 0, 172,
- 172, 172, 172, 172, 172, 184, 0, 184, 184, 184,
- 184, 184, 184, 184, 184, 0, 0, 0, 0, 172,
- 0, 0, 0, 0, 0, 178, 184, 184, 184, 184,
- 0, 0, 0, 182, 0, 0, 0, 172, 172, 0,
- 0, 0, 0, 0, 0, 172, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 172, 0, 184, 0,
- 184, 184, 186, 0, 0, 186, 186, 186, 186, 186,
- 186, 182, 0, 182, 182, 182, 182, 182, 182, 182,
- 182, 0, 0, 0, 0, 186, 0, 0, 0, 0,
- 0, 184, 182, 182, 182, 182, 0, 0, 0, 0,
- 0, 2, 221, 186, 186, 0, 0, 2, 221, 0,
- 0, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 223, 182, 0, 182, 182, 0, 223,
- 180, 298, 19, 20, 21, 22, 23, 24, 19, 20,
- 21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
- 0, 0, 292, 0, 0, 0, 0, 182, 0, 178,
- 0, 0, 178, 178, 178, 178, 178, 178, 180, 0,
- 180, 180, 180, 180, 180, 180, 180, 180, 0, 0,
- 0, 0, 178, 292, 292, 292, 292, 292, 292, 180,
- 180, 180, 180, 0, 0, 0, 44, 0, 0, 0,
- 178, 178, 0, 0, 0, 0, 0, 0, 178, 178,
- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
- 0, 180, 0, 180, 180, 184, 0, 0, 184, 184,
- 184, 184, 184, 184, 44, 0, 0, 44, 44, 44,
- 44, 44, 0, 44, 0, 0, 0, 0, 184, 0,
- 0, 0, 0, 0, 180, 44, 44, 44, 44, 0,
- 0, 0, 45, 0, 0, 0, 184, 184, 0, 0,
- 0, 0, 0, 0, 184, 184, 184, 184, 184, 184,
- 184, 184, 184, 184, 184, 184, 0, 0, 0, 44,
- 44, 182, 0, 0, 182, 182, 182, 182, 182, 182,
- 45, 0, 0, 45, 45, 45, 45, 45, 0, 45,
- 0, 0, 0, 0, 182, 0, 279, 0, 0, 279,
- 44, 45, 45, 45, 45, 0, 0, 0, 0, 298,
- 0, 0, 0, 182, 279, 0, 279, 2, 0, 0,
- 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
- 182, 182, 0, 298, 0, 45, 45, 134, 0, 39,
- 298, 298, 298, 0, 298, 298, 0, 0, 19, 20,
- 21, 22, 23, 24, 0, 0, 0, 0, 0, 298,
- 298, 0, 298, 0, 0, 0, 45, 0, 180, 298,
- 298, 180, 180, 180, 180, 180, 180, 39, 0, 0,
- 39, 39, 39, 39, 39, 0, 39, 0, 100, 0,
- 0, 180, 112, 110, 0, 109, 0, 111, 39, 39,
- 39, 39, 0, 0, 0, 40, 0, 0, 0, 180,
- 105, 108, 104, 0, 0, 0, 0, 180, 180, 180,
- 180, 180, 180, 180, 180, 180, 180, 180, 180, 276,
- 0, 0, 39, 0, 44, 0, 0, 44, 44, 44,
- 44, 44, 44, 40, 113, 0, 40, 40, 40, 40,
- 40, 0, 40, 0, 0, 0, 0, 44, 0, 230,
- 0, 0, 0, 39, 40, 40, 40, 40, 0, 0,
- 0, 37, 0, 0, 101, 44, 44, 0, 0, 0,
- 0, 0, 0, 44, 44, 44, 44, 44, 0, 0,
- 44, 44, 44, 44, 44, 0, 0, 0, 40, 0,
- 45, 0, 0, 45, 45, 45, 45, 45, 45, 37,
- 0, 0, 37, 0, 37, 37, 37, 0, 0, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 40,
- 37, 37, 37, 37, 0, 0, 279, 0, 0, 0,
- 0, 45, 45, 0, 0, 0, 2, 78, 38, 45,
- 45, 45, 45, 45, 0, 0, 45, 45, 45, 45,
- 45, 0, 279, 279, 37, 279, 390, 279, 279, 0,
- 0, 0, 279, 279, 0, 0, 0, 19, 20, 21,
- 22, 23, 24, 0, 343, 0, 38, 0, 0, 38,
- 0, 38, 38, 38, 0, 37, 0, 39, 0, 0,
- 39, 39, 39, 39, 39, 39, 0, 38, 38, 38,
- 38, 99, 102, 103, 106, 107, 0, 0, 0, 0,
- 39, 466, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 30, 0, 0, 39, 39,
- 0, 38, 0, 0, 0, 0, 39, 39, 39, 39,
- 39, 276, 0, 39, 39, 39, 39, 39, 0, 0,
- 0, 413, 0, 40, 0, 0, 40, 40, 40, 40,
- 40, 40, 38, 30, 0, 0, 30, 276, 276, 30,
- 276, 230, 0, 0, 0, 0, 40, 276, 276, 0,
- 0, 0, 0, 0, 30, 30, 30, 30, 0, 0,
- 0, 31, 0, 0, 40, 40, 0, 230, 230, 0,
- 230, 0, 40, 40, 40, 40, 40, 230, 230, 40,
- 40, 40, 40, 40, 0, 0, 0, 0, 30, 37,
- 0, 0, 37, 37, 37, 37, 37, 37, 0, 31,
- 0, 0, 31, 0, 0, 31, 0, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 0, 30,
- 31, 31, 31, 31, 2, 0, 0, 0, 0, 0,
- 37, 37, 0, 0, 296, 0, 0, 0, 37, 37,
- 37, 37, 37, 33, 0, 37, 37, 37, 37, 37,
- 0, 0, 0, 0, 31, 19, 20, 21, 22, 23,
- 24, 2, 0, 0, 0, 0, 38, 0, 0, 38,
- 38, 38, 38, 38, 38, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 33, 31, 0, 33, 0, 38,
- 0, 0, 19, 20, 21, 22, 23, 24, 2, 0,
- 0, 0, 33, 33, 33, 33, 0, 38, 38, 0,
- 0, 0, 0, 0, 0, 38, 38, 38, 38, 38,
- 0, 0, 38, 38, 38, 38, 38, 32, 0, 19,
- 20, 21, 22, 23, 24, 0, 33, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 30, 0, 0, 30, 30, 30, 30,
- 30, 30, 0, 0, 0, 32, 0, 33, 32, 0,
- 0, 32, 0, 0, 0, 0, 30, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 32, 32, 32,
- 0, 0, 0, 34, 30, 30, 0, 0, 0, 0,
- 0, 0, 30, 30, 30, 30, 30, 0, 0, 30,
- 30, 30, 30, 30, 0, 0, 0, 0, 0, 31,
- 32, 0, 31, 31, 31, 31, 31, 31, 0, 0,
- 0, 34, 296, 0, 34, 0, 0, 34, 0, 0,
- 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
- 0, 32, 34, 34, 34, 34, 296, 0, 0, 0,
- 31, 31, 0, 296, 296, 296, 296, 296, 31, 31,
- 31, 31, 31, 0, 35, 31, 31, 31, 31, 31,
- 0, 0, 296, 296, 0, 296, 34, 36, 0, 0,
- 0, 0, 296, 296, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 33, 33, 33, 33, 33, 33,
- 0, 0, 35, 0, 0, 35, 0, 34, 35, 0,
- 0, 0, 0, 0, 33, 36, 0, 0, 36, 0,
- 0, 36, 0, 35, 35, 35, 35, 0, 0, 0,
- 0, 0, 33, 33, 0, 0, 36, 36, 36, 36,
- 33, 33, 33, 33, 33, 0, 28, 33, 33, 33,
- 33, 33, 0, 0, 0, 0, 0, 35, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 36, 0, 0, 0, 0, 32, 0, 0, 32, 32,
- 32, 32, 32, 32, 28, 0, 0, 28, 35, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 32, 100,
- 0, 36, 0, 112, 110, 28, 109, 0, 111, 0,
- 0, 0, 29, 0, 0, 0, 32, 32, 0, 0,
- 114, 105, 108, 104, 32, 32, 32, 32, 32, 0,
- 0, 32, 32, 32, 32, 32, 0, 0, 0, 28,
- 0, 34, 0, 0, 34, 34, 34, 34, 34, 34,
- 29, 0, 0, 29, 0, 113, 29, 0, 0, 0,
- 112, 110, 0, 109, 34, 111, 0, 0, 0, 0,
- 28, 29, 0, 0, 0, 0, 0, 0, 105, 108,
- 104, 0, 34, 34, 0, 101, 0, 0, 0, 0,
- 34, 34, 34, 34, 34, 0, 0, 34, 34, 34,
- 34, 34, 0, 0, 0, 29, 0, 0, 0, 0,
- 0, 0, 113, 0, 16, 0, 0, 0, 0, 16,
- 0, 0, 35, 0, 0, 35, 35, 35, 35, 35,
- 35, 0, 0, 0, 0, 36, 29, 0, 36, 36,
- 36, 36, 36, 36, 0, 35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
- 0, 16, 0, 35, 35, 0, 16, 0, 0, 0,
- 0, 35, 35, 35, 35, 35, 36, 36, 35, 35,
- 35, 35, 35, 0, 36, 36, 36, 36, 36, 0,
- 0, 36, 36, 36, 36, 36, 0, 0, 0, 0,
- 16, 0, 0, 0, 28, 0, 0, 28, 0, 100,
- 16, 0, 28, 112, 110, 16, 109, 0, 111, 0,
- 0, 0, 99, 102, 103, 106, 107, 28, 0, 0,
- 0, 105, 108, 104, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 28, 28, 16, 0, 0,
- 0, 0, 0, 28, 28, 28, 28, 28, 0, 0,
- 28, 28, 28, 28, 28, 113, 16, 2, 0, 0,
- 29, 16, 0, 29, 0, 0, 0, 0, 29, 0,
- 102, 103, 106, 107, 0, 0, 148, 149, 150, 151,
- 0, 0, 0, 29, 0, 101, 16, 0, 19, 20,
- 21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
- 0, 29, 29, 0, 0, 0, 0, 0, 0, 29,
- 29, 29, 29, 29, 0, 0, 29, 29, 29, 29,
- 29, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 16, 16, 16,
- 0, 6, 16, 0, 16, 14, 7, 0, 16, 16,
- 16, 0, 16, 16, 16, 16, 16, 16, 0, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 14, 14, 16, 16, 16, 16, 0, 0, 0,
- 0, 16, 14, 0, 0, 16, 16, 16, 0, 16,
- 16, 16, 16, 16, 16, 0, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 294, 0, 16, 16, 16,
- 16, 14, 99, 102, 103, 106, 107, 9, 0, 0,
- 0, 0, 16, 16, 16, 16, 0, 0, 0, 0,
- 16, 97, 0, 0, 16, 16, 16, 0, 16, 16,
- 16, 16, 16, 16, 0, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 303, 304, 305, 97, 97, 0,
- 316, 0, 0, 16, 16, 16, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 16,
- 16, 16, 0, 0, 0, 0, 16, 14, 0, 0,
- 16, 16, 16, 0, 16, 16, 16, 16, 16, 16,
- 0, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 6, 0, 0, 14, 14, 7, 357, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
- 0, 0, 0, 0, 0, 0, 374, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 3,
- 4, 5, 0, 0, 0, 395, 0, 6, 0, 0,
- 0, 0, 7, 11, 12, 13, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 240, 18, 87, 19,
- 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 0, 9, 0, 0, 0,
- 0, 0, 0, 294, 442, 459, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 448, 0,
- 0, 0, 452, 0, 516, 0, 0, 294, 0, 0,
- 0, 0, 0, 0, 0, 294, 294, 294, 294, 294,
- 0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 290, 294, 294, 0, 294, 290, 0, 0,
- 0, 0, 0, 294, 294, 0, 0, 0, 0, 0,
- 0, 290, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 503, 9, 0, 0, 0, 0, 0, 511, 0, 0,
- 226, 0, 0, 0, 0, 226, 0, 0, 0, 0,
- 0, 0, 0, 0, 520, 0, 0, 0, 522, 226,
- 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
- 5, 0, 0, 0, 0, 0, 0, 0, 290, 0,
- 0, 10, 11, 12, 13, 14, 0, 0, 0, 0,
- 15, 0, 0, 0, 16, 17, 18, 0, 19, 20,
- 21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 2, 3, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 226, 0, 0, 11,
- 12, 13, 14, 0, 0, 0, 0, 15, 0, 0,
- 0, 16, 17, 18, 87, 19, 20, 21, 22, 23,
- 24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 0, 2, 3, 4, 5, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 16, 0, 11, 12, 13,
- 14, 0, 0, 0, 0, 15, 0, 0, 0, 16,
- 17, 18, 460, 19, 20, 21, 22, 23, 24, 0,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 290,
- 290, 290, 290, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 290, 290, 290, 290, 0, 0,
- 0, 0, 290, 290, 0, 0, 290, 290, 290, 0,
- 290, 290, 290, 290, 290, 290, 0, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 16, 226, 226, 226,
- 226, 0, 0, 16, 0, 0, 0, 0, 16, 0,
- 0, 0, 226, 226, 226, 226, 0, 0, 0, 0,
- 226, 226, 14, 0, 226, 226, 226, 0, 226, 226,
- 226, 226, 226, 226, 0, 226, 226, 226, 226, 226,
- 226, 226, 226, 226, 0, 0, 0, 0, 0, 100,
- 6, 0, 0, 112, 110, 7, 109, 0, 111, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 240,
- 0, 105, 108, 104, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
- 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
- 0, 0, 7, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 16, 16, 16,
- 16, 0, 0, 0, 0, 101, 9, 0, 0, 0,
- 0, 0, 16, 16, 16, 16, 0, 300, 0, 0,
- 16, 14, 300, 0, 16, 16, 16, 0, 16, 16,
- 16, 16, 16, 16, 0, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 16,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 300, 0, 16, 16, 16, 16, 0,
- 0, 6, 0, 16, 14, 0, 7, 16, 16, 16,
- 0, 16, 16, 16, 16, 16, 16, 0, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 2, 3, 4,
- 5, 0, 99, 102, 103, 106, 107, 165, 0, 0,
- 16, 0, 11, 12, 13, 14, 0, 0, 6, 0,
- 15, 0, 0, 7, 16, 17, 18, 0, 19, 20,
- 21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 2, 3, 4, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 0, 11,
- 12, 13, 14, 0, 0, 459, 0, 15, 0, 0,
- 7, 16, 17, 18, 0, 19, 20, 21, 22, 23,
- 24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 0, 0, 0, 300, 300, 300, 300, 0, 0,
- 0, 386, 0, 0, 9, 0, 0, 0, 0, 300,
- 300, 300, 300, 0, 6, 0, 0, 300, 300, 7,
- 0, 300, 300, 300, 0, 300, 300, 300, 300, 300,
- 300, 0, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 0, 9, 0, 0, 0, 0, 16, 16, 16, 16,
- 0, 6, 0, 0, 16, 100, 7, 0, 16, 16,
- 16, 0, 16, 16, 16, 16, 16, 16, 0, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 2, 3,
- 4, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 0, 0, 11, 12, 13, 14, 0, 6, 0,
- 0, 15, 0, 0, 0, 16, 17, 18, 0, 19,
- 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 2, 3, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
- 11, 12, 13, 14, 0, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 18, 0, 19, 20, 21, 22,
- 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 2, 3, 4, 5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 460, 19, 20, 21, 22, 23, 24, 0,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
- 0, 2, 3, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 18, 0, 19, 20, 21, 22, 23, 24, 0, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 2, 190,
- 4, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 13, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 19,
- 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 2, 0, 4, 5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 12, 13, 14, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 18, 0, 19, 20, 21, 22,
- 23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 2, 42, 4, 5, 42, 42, 42, 42,
- 0, 0, 42, 0, 0, 0, 0, 11, 12, 13,
- 14, 0, 0, 0, 42, 42, 42, 42, 0, 0,
- 0, 18, 0, 19, 20, 21, 22, 23, 24, 0,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
- 0, 0, 0, 0, 0, 0, 0, 100, 42, 42,
- 120, 112, 110, 513, 109, 0, 111, 0, 100, 0,
- 0, 120, 112, 110, 0, 109, 0, 111, 0, 105,
- 108, 104, 0, 0, 0, 0, 0, 0, 0, 42,
- 105, 108, 104, 100, 0, 0, 244, 112, 110, 0,
- 109, 0, 111, 100, 0, 0, 245, 112, 110, 0,
- 109, 0, 111, 113, 0, 105, 108, 104, 0, 0,
- 0, 0, 0, 0, 113, 105, 108, 104, 100, 0,
- 0, 246, 112, 110, 0, 109, 0, 111, 0, 0,
- 0, 0, 0, 101, 0, 0, 0, 0, 0, 113,
- 105, 108, 104, 100, 101, 0, 302, 112, 110, 113,
- 109, 0, 111, 100, 0, 0, 0, 112, 110, 254,
- 109, 0, 111, 0, 0, 105, 108, 104, 0, 101,
- 0, 0, 0, 0, 113, 105, 108, 104, 100, 101,
- 0, 0, 112, 110, 318, 109, 0, 111, 0, 100,
- 0, 0, 0, 112, 110, 424, 109, 0, 111, 113,
- 105, 108, 104, 0, 101, 0, 0, 0, 0, 113,
- 0, 105, 108, 104, 0, 0, 42, 42, 42, 42,
- 42, 0, 0, 0, 0, 0, 0, 0, 0, 101,
- 0, 0, 0, 0, 113, 0, 42, 100, 0, 101,
- 504, 112, 110, 100, 109, 113, 111, 112, 110, 0,
- 109, 0, 111, 0, 0, 0, 0, 0, 0, 105,
- 108, 104, 0, 0, 101, 105, 108, 104, 0, 0,
- 99, 102, 103, 106, 107, 101, 0, 0, 0, 0,
- 0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
- 0, 0, 0, 113, 0, 0, 0, 0, 0, 113,
- 0, 0, 0, 0, 0, 0, 99, 102, 103, 106,
- 107, 0, 0, 0, 0, 0, 99, 102, 103, 106,
- 107, 0, 0, 101, 0, 0, 0, 0, 0, 101,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 99, 102, 103, 106,
- 107, 0, 0, 0, 0, 0, 99, 102, 103, 106,
- 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
- 0, 0, 99, 102, 103, 106, 107, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 99, 102, 103, 106, 107, 0, 99, 102, 103, 106,
- 107,
- };
- short yycheck[] =
- {162,
- 0, 329, 41, 41, 41, 41, 6, 294, 44, 159,
- 260, 259, 59, 41, 59, 61, 44, 59, 13, 14,
- 59, 59, 78, 330, 116, 59, 26, 16, 59, 59,
- 14, 59, 299, 61, 38, 42, 302, 42, 42, 43,
- 47, 45, 44, 47, 257, 42, 43, 40, 45, 257,
- 47, 257, 258, 46, 93, 93, 60, 61, 62, 240,
- 41, 41, 41, 44, 526, 44, 41, 469, 44, 44,
- 46, 533, 372, 475, 381, 288, 376, 539, 59, 59,
- 288, 348, 288, 72, 72, 74, 74, 94, 41, 78,
- 94, 44, 92, 93, 94, 84, 424, 94, 91, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 41, 115, 116, 173, 299, 521,
- 124, 213, 370, 125, 281, 432, 40, 122, 117, 124,
- 125, 398, 137, 399, 297, 41, 141, 294, 44, 128,
- 124, 125, 131, 132, 144, 134, 258, 40, 0, 257,
- 258, 40, 208, 46, 441, 41, 40, 146, 44, 148,
- 149, 150, 254, 40, 0, 465, 201, 59, 168, 41,
- 257, 516, 44, 473, 174, 61, 41, 212, 328, 44,
- 288, 526, 93, 172, 173, 513, 44, 299, 300, 282,
- 190, 41, 44, 286, 41, 288, 41, 44, 91, 44,
- 41, 201, 289, 44, 291, 292, 293, 59, 44, 41,
- 282, 286, 212, 213, 286, 215, 288, 206, 267, 208,
- 281, 266, 258, 59, 271, 214, 318, 227, 257, 266,
- 257, 518, 221, 396, 0, 61, 281, 293, 281, 281,
- 240, 230, 281, 281, 304, 305, 306, 281, 307, 308,
- 281, 281, 266, 281, 254, 311, 40, 261, 262, 263,
- 264, 265, 41, 299, 300, 44, 312, 313, 257, 258,
- 259, 40, 272, 309, 265, 41, 267, 266, 44, 307,
- 308, 40, 310, 258, 312, 313, 40, 343, 288, 317,
- 318, 40, 282, 59, 317, 318, 286, 0, 288, 299,
- 278, 279, 291, 44, 293, 258, 41, 307, 308, 309,
- 314, 315, 316, 313, 314, 315, 316, 61, 318, 41,
- 44, 41, 311, 41, 299, 300, 44, 93, 296, 329,
- 493, 258, 332, 281, 390, 38, 94, 40, 41, 42,
- 43, 44, 45, 46, 47, 41, 299, 300, 277, 278,
- 279, 93, 258, 0, 343, 40, 59, 60, 61, 62,
- 61, 44, 44, 526, 44, 44, 422, 0, 61, 279,
- 533, 44, 299, 300, 281, 266, 539, 433, 470, 41,
- 41, 370, 59, 372, 440, 44, 258, 376, 91, 59,
- 93, 94, 59, 299, 300, 0, 59, 386, 281, 40,
- 281, 390, 258, 309, 41, 257, 41, 93, 258, 291,
- 466, 258, 59, 413, 414, 415, 416, 281, 418, 281,
- 44, 124, 41, 59, 424, 59, 59, 299, 300, 281,
- 298, 300, 299, 422, 41, 41, 288, 289, 290, 291,
- 292, 293, 59, 281, 433, 281, 446, 266, 41, 299,
- 300, 440, 299, 300, 59, 307, 308, 457, 310, 459,
- 449, 281, 309, 0, 59, 317, 318, 294, 44, 41,
- 470, 307, 308, 40, 310, 40, 465, 466, 59, 258,
- 309, 317, 318, 293, 473, 44, 288, 125, 477, 478,
- 44, 266, 258, 281, 281, 310, 281, 297, 59, 266,
- 266, 38, 267, 40, 41, 42, 43, 44, 45, 46,
- 47, 41, 301, 513, 41, 281, 516, 281, 507, 59,
- 299, 300, 59, 60, 61, 62, 526, 303, 302, 0,
- 309, 41, 266, 299, 300, 93, 41, 93, 258, 41,
- 258, 307, 308, 309, 310, 311, 41, 41, 314, 315,
- 316, 317, 318, 281, 91, 258, 93, 94, 261, 262,
- 263, 264, 265, 266, 61, 41, 41, 38, 281, 40,
- 41, 42, 43, 44, 45, 46, 47, 281, 281, 299,
- 300, 299, 300, 41, 258, 259, 260, 124, 59, 60,
- 61, 62, 41, 257, 41, 0, 299, 300, 272, 273,
- 274, 275, 41, 281, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, 318, 281, 41, 41, 0,
- 91, 59, 93, 94, 288, 289, 290, 291, 292, 293,
- 59, 41, 281, 38, 281, 40, 41, 42, 43, 44,
- 45, 46, 47, 41, 41, 41, 41, 125, 281, 281,
- 294, 281, 41, 124, 59, 60, 61, 62, 281, 125,
- 307, 308, 41, 310, 281, 281, 281, 281, 41, 0,
- 317, 318, 0, 396, 307, 308, 281, 310, 59, 79,
- 281, 204, 40, 60, 317, 318, 91, 122, 93, 94,
- 307, 308, 0, 310, 125, 520, 451, 460, 311, 432,
- 317, 318, 307, 308, 146, 310, 307, 308, 320, 310,
- 71, 266, 317, 318, 325, 466, 317, 318, 230, 124,
- 281, 258, 230, 283, 261, 262, 263, 264, 265, 266,
- 38, 284, 40, 41, 42, 43, 44, 45, 46, 47,
- 291, 152, 286, 337, 281, 208, 307, 308, 141, 310,
- 440, 59, 60, 61, 62, 276, 317, 318, 0, 478,
- 477, -1, 299, 300, -1, -1, -1, -1, -1, -1,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 318, -1, 91, -1, 93, 94, 258, -1, -1,
- 261, 262, 263, 264, 265, 266, 38, -1, 40, 41,
- 42, 43, 44, 45, 46, 47, -1, -1, -1, -1,
- 281, -1, -1, -1, -1, -1, 124, 59, 60, 61,
- 62, -1, -1, -1, 0, -1, -1, -1, 299, 300,
- -1, -1, -1, -1, -1, -1, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, 317, 318, -1, 91,
- -1, 93, 94, 258, -1, -1, 261, 262, 263, 264,
- 265, 266, 38, -1, 40, 41, 42, 43, 44, 45,
- 46, 47, -1, -1, -1, -1, 281, -1, -1, -1,
- -1, -1, 124, 59, 60, 61, 62, -1, -1, -1,
- -1, -1, -1, -1, 299, 300, -1, -1, -1, 257,
- 281, -1, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 44, 91, -1, 93, 94, -1,
- -1, 0, -1, -1, -1, 283, 307, 308, -1, 310,
- 288, 289, 290, 291, 292, 293, 317, 318, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 124, 281,
- 258, -1, -1, 261, 262, 263, 264, 265, 266, 38,
- -1, 40, 41, 42, 43, 44, 45, 46, 47, -1,
- -1, -1, -1, 281, -1, 307, 308, -1, 310, -1,
- 59, 60, 61, 62, -1, 317, 318, 0, -1, -1,
- -1, 299, 300, -1, -1, -1, -1, -1, -1, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 318, -1, 91, -1, 93, 94, 258, -1, -1, 261,
- 262, 263, 264, 265, 266, 38, -1, 40, 41, 42,
- 43, 44, 45, 46, 47, -1, -1, -1, -1, 281,
- -1, -1, -1, -1, -1, 124, 59, 60, 61, 62,
- -1, -1, -1, 0, -1, -1, -1, 299, 300, -1,
- -1, -1, -1, -1, -1, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, -1, 91, -1,
- 93, 94, 258, -1, -1, 261, 262, 263, 264, 265,
- 266, 38, -1, 40, 41, 42, 43, 44, 45, 46,
- 47, -1, -1, -1, -1, 281, -1, -1, -1, -1,
- -1, 124, 59, 60, 61, 62, -1, -1, -1, -1,
- -1, 257, 258, 299, 300, -1, -1, 257, 258, -1,
- -1, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, 318, 279, 91, -1, 93, 94, -1, 279,
- 0, 59, 288, 289, 290, 291, 292, 293, 288, 289,
- 290, 291, 292, 293, -1, -1, -1, -1, -1, -1,
- -1, -1, 257, -1, -1, -1, -1, 124, -1, 258,
- -1, -1, 261, 262, 263, 264, 265, 266, 38, -1,
- 40, 41, 42, 43, 44, 45, 46, 47, -1, -1,
- -1, -1, 281, 288, 289, 290, 291, 292, 293, 59,
- 60, 61, 62, -1, -1, -1, 0, -1, -1, -1,
- 299, 300, -1, -1, -1, -1, -1, -1, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
- -1, 91, -1, 93, 94, 258, -1, -1, 261, 262,
- 263, 264, 265, 266, 38, -1, -1, 41, 42, 43,
- 44, 45, -1, 47, -1, -1, -1, -1, 281, -1,
- -1, -1, -1, -1, 124, 59, 60, 61, 62, -1,
- -1, -1, 0, -1, -1, -1, 299, 300, -1, -1,
- -1, -1, -1, -1, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, 318, -1, -1, -1, 93,
- 94, 258, -1, -1, 261, 262, 263, 264, 265, 266,
- 38, -1, -1, 41, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, 281, -1, 41, -1, -1, 44,
- 124, 59, 60, 61, 62, -1, -1, -1, -1, 257,
- -1, -1, -1, 300, 59, -1, 61, 257, -1, -1,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 318, -1, 281, -1, 93, 94, 277, -1, 0,
- 288, 289, 290, -1, 292, 293, -1, -1, 288, 289,
- 290, 291, 292, 293, -1, -1, -1, -1, -1, 307,
- 308, -1, 310, -1, -1, -1, 124, -1, 258, 317,
- 318, 261, 262, 263, 264, 265, 266, 38, -1, -1,
- 41, 42, 43, 44, 45, -1, 47, -1, 38, -1,
- -1, 281, 42, 43, -1, 45, -1, 47, 59, 60,
- 61, 62, -1, -1, -1, 0, -1, -1, -1, 299,
- 60, 61, 62, -1, -1, -1, -1, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, 318, 59,
- -1, -1, 93, -1, 258, -1, -1, 261, 262, 263,
- 264, 265, 266, 38, 94, -1, 41, 42, 43, 44,
- 45, -1, 47, -1, -1, -1, -1, 281, -1, 59,
- -1, -1, -1, 124, 59, 60, 61, 62, -1, -1,
- -1, 0, -1, -1, 124, 299, 300, -1, -1, -1,
- -1, -1, -1, 307, 308, 309, 310, 311, -1, -1,
- 314, 315, 316, 317, 318, -1, -1, -1, 93, -1,
- 258, -1, -1, 261, 262, 263, 264, 265, 266, 38,
- -1, -1, 41, -1, 43, 44, 45, -1, -1, -1,
- -1, -1, -1, 281, -1, -1, -1, -1, -1, 124,
- 59, 60, 61, 62, -1, -1, 281, -1, -1, -1,
- -1, 299, 300, -1, -1, -1, 257, 40, 0, 307,
- 308, 309, 310, 311, -1, -1, 314, 315, 316, 317,
- 318, -1, 307, 308, 93, 310, 277, 312, 313, -1,
- -1, -1, 317, 318, -1, -1, -1, 288, 289, 290,
- 291, 292, 293, -1, 40, -1, 38, -1, -1, 41,
- -1, 43, 44, 45, -1, 124, -1, 258, -1, -1,
- 261, 262, 263, 264, 265, 266, -1, 59, 60, 61,
- 62, 261, 262, 263, 264, 265, -1, -1, -1, -1,
- 281, 40, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, 299, 300,
- -1, 93, -1, -1, -1, -1, 307, 308, 309, 310,
- 311, 281, -1, 314, 315, 316, 317, 318, -1, -1,
- -1, 311, -1, 258, -1, -1, 261, 262, 263, 264,
- 265, 266, 124, 38, -1, -1, 41, 307, 308, 44,
- 310, 281, -1, -1, -1, -1, 281, 317, 318, -1,
- -1, -1, -1, -1, 59, 60, 61, 62, -1, -1,
- -1, 0, -1, -1, 299, 300, -1, 307, 308, -1,
- 310, -1, 307, 308, 309, 310, 311, 317, 318, 314,
- 315, 316, 317, 318, -1, -1, -1, -1, 93, 258,
- -1, -1, 261, 262, 263, 264, 265, 266, -1, 38,
- -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, 281, -1, -1, -1, -1, -1, -1, 124,
- 59, 60, 61, 62, 257, -1, -1, -1, -1, -1,
- 299, 300, -1, -1, 59, -1, -1, -1, 307, 308,
- 309, 310, 311, 0, -1, 314, 315, 316, 317, 318,
- -1, -1, -1, -1, 93, 288, 289, 290, 291, 292,
- 293, 257, -1, -1, -1, -1, 258, -1, -1, 261,
- 262, 263, 264, 265, 266, -1, -1, -1, -1, -1,
- -1, 38, -1, -1, 41, 124, -1, 44, -1, 281,
- -1, -1, 288, 289, 290, 291, 292, 293, 257, -1,
- -1, -1, 59, 60, 61, 62, -1, 299, 300, -1,
- -1, -1, -1, -1, -1, 307, 308, 309, 310, 311,
- -1, -1, 314, 315, 316, 317, 318, 0, -1, 288,
- 289, 290, 291, 292, 293, -1, 93, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 258, -1, -1, 261, 262, 263, 264,
- 265, 266, -1, -1, -1, 38, -1, 124, 41, -1,
- -1, 44, -1, -1, -1, -1, 281, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, 60, 61, 62,
- -1, -1, -1, 0, 299, 300, -1, -1, -1, -1,
- -1, -1, 307, 308, 309, 310, 311, -1, -1, 314,
- 315, 316, 317, 318, -1, -1, -1, -1, -1, 258,
- 93, -1, 261, 262, 263, 264, 265, 266, -1, -1,
- -1, 38, 257, -1, 41, -1, -1, 44, -1, -1,
- -1, -1, 281, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 59, 60, 61, 62, 281, -1, -1, -1,
- 299, 300, -1, 288, 289, 290, 291, 292, 307, 308,
- 309, 310, 311, -1, 0, 314, 315, 316, 317, 318,
- -1, -1, 307, 308, -1, 310, 93, 0, -1, -1,
- -1, -1, 317, 318, -1, -1, -1, -1, -1, -1,
- -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
- -1, -1, 38, -1, -1, 41, -1, 124, 44, -1,
- -1, -1, -1, -1, 281, 38, -1, -1, 41, -1,
- -1, 44, -1, 59, 60, 61, 62, -1, -1, -1,
- -1, -1, 299, 300, -1, -1, 59, 60, 61, 62,
- 307, 308, 309, 310, 311, -1, 0, 314, 315, 316,
- 317, 318, -1, -1, -1, -1, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, -1, -1, -1, -1, 258, -1, -1, 261, 262,
- 263, 264, 265, 266, 38, -1, -1, 41, 124, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, 281, 38,
- -1, 124, -1, 42, 43, 59, 45, -1, 47, -1,
- -1, -1, 0, -1, -1, -1, 299, 300, -1, -1,
- 59, 60, 61, 62, 307, 308, 309, 310, 311, -1,
- -1, 314, 315, 316, 317, 318, -1, -1, -1, 93,
- -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
- 38, -1, -1, 41, -1, 94, 44, -1, -1, -1,
- 42, 43, -1, 45, 281, 47, -1, -1, -1, -1,
- 124, 59, -1, -1, -1, -1, -1, -1, 60, 61,
- 62, -1, 299, 300, -1, 124, -1, -1, -1, -1,
- 307, 308, 309, 310, 311, -1, -1, 314, 315, 316,
- 317, 318, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, 94, -1, 40, -1, -1, -1, -1, 45,
- -1, -1, 258, -1, -1, 261, 262, 263, 264, 265,
- 266, -1, -1, -1, -1, 258, 124, -1, 261, 262,
- 263, 264, 265, 266, -1, 281, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 281, -1,
- -1, 40, -1, 299, 300, -1, 45, -1, -1, -1,
- -1, 307, 308, 309, 310, 311, 299, 300, 314, 315,
- 316, 317, 318, -1, 307, 308, 309, 310, 311, -1,
- -1, 314, 315, 316, 317, 318, -1, -1, -1, -1,
- 126, -1, -1, -1, 258, -1, -1, 261, -1, 38,
- 40, -1, 266, 42, 43, 45, 45, -1, 47, -1,
- -1, -1, 261, 262, 263, 264, 265, 281, -1, -1,
- -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 299, 300, 126, -1, -1,
- -1, -1, -1, 307, 308, 309, 310, 311, -1, -1,
- 314, 315, 316, 317, 318, 94, 40, 257, -1, -1,
- 258, 45, -1, 261, -1, -1, -1, -1, 266, -1,
- 262, 263, 264, 265, -1, -1, 276, 277, 278, 279,
- -1, -1, -1, 281, -1, 124, 126, -1, 288, 289,
- 290, 291, 292, 293, -1, -1, -1, -1, -1, -1,
- -1, 299, 300, -1, -1, -1, -1, -1, -1, 307,
- 308, 309, 310, 311, -1, -1, 314, 315, 316, 317,
- 318, 257, 258, 259, 260, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 40, 126, -1, 280, 281, 45, -1, 284, 285,
- 286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
- 259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 317, 318, 272, 273, 274, 275, -1, -1, -1,
- -1, 280, 281, -1, -1, 284, 285, 286, -1, 288,
- 289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 59, -1, 257, 258, 259,
- 260, 310, 261, 262, 263, 264, 265, 126, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- 280, 281, -1, -1, 284, 285, 286, -1, 288, 289,
- 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 244, 245, 246, 307, 308, -1,
- 309, -1, -1, 257, 258, 259, 260, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, -1, 280, 281, -1, -1,
- 284, 285, 286, -1, 288, 289, 290, 291, 292, 293,
- -1, 295, 296, 297, 298, 299, 300, 301, 302, 303,
- 40, -1, -1, 307, 308, 45, 306, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
- -1, -1, -1, -1, -1, -1, 326, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
- 259, 260, -1, -1, -1, 345, -1, 40, -1, -1,
- -1, -1, 45, 272, 273, 274, 275, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, 286, 287, 288,
- 289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, -1, 126, -1, -1, -1,
- -1, -1, -1, 257, 394, 40, -1, -1, -1, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, 408, -1,
- -1, -1, 412, -1, 59, -1, -1, 281, -1, -1,
- -1, -1, -1, -1, -1, 289, 290, 291, 292, 293,
- -1, -1, -1, 126, -1, -1, -1, -1, -1, -1,
- -1, -1, 40, 307, 308, -1, 310, 45, -1, -1,
- -1, -1, -1, 317, 318, -1, -1, -1, -1, -1,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 480, 126, -1, -1, -1, -1, -1, 487, -1, -1,
- 40, -1, -1, -1, -1, 45, -1, -1, -1, -1,
- -1, -1, -1, -1, 504, -1, -1, -1, 508, 59,
- -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
- 260, -1, -1, -1, -1, -1, -1, -1, 126, -1,
- -1, 271, 272, 273, 274, 275, -1, -1, -1, -1,
- 280, -1, -1, -1, 284, 285, 286, -1, 288, 289,
- 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 257, 258, 259, 260, -1, -1,
- -1, -1, -1, -1, -1, -1, 126, -1, -1, 272,
- 273, 274, 275, -1, -1, -1, -1, 280, -1, -1,
- -1, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, -1, 257, 258, 259, 260, -1, -1, -1, -1,
- 40, -1, -1, -1, -1, 45, -1, 272, 273, 274,
- 275, -1, -1, -1, -1, 280, -1, -1, -1, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, -1,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 257,
- 258, 259, 260, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, -1, 280, 281, -1, -1, 284, 285, 286, -1,
- 288, 289, 290, 291, 292, 293, -1, 295, 296, 297,
- 298, 299, 300, 301, 302, 303, 126, 257, 258, 259,
- 260, -1, -1, 40, -1, -1, -1, -1, 45, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
- 280, 281, 59, -1, 284, 285, 286, -1, 288, 289,
- 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, -1, -1, -1, -1, -1, 38,
- 40, -1, -1, 42, 43, 45, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
- -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
- -1, -1, -1, -1, -1, -1, -1, 40, -1, -1,
- -1, -1, 45, -1, -1, 94, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
- 260, -1, -1, -1, -1, 124, 126, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 40, -1, -1,
- 280, 281, 45, -1, 284, 285, 286, -1, 288, 289,
- 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 126, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 40, -1, -1, -1, -1, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 126, -1, 272, 273, 274, 275, -1,
- -1, 40, -1, 280, 281, -1, 45, 284, 285, 286,
- -1, 288, 289, 290, 291, 292, 293, -1, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 257, 258, 259,
- 260, -1, 261, 262, 263, 264, 265, 266, -1, -1,
- 126, -1, 272, 273, 274, 275, -1, -1, 40, -1,
- 280, -1, -1, 45, 284, 285, 286, -1, 288, 289,
- 290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 257, 258, 259, 260, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 126, -1, 272,
- 273, 274, 275, -1, -1, 40, -1, 280, -1, -1,
- 45, 284, 285, 286, -1, 288, 289, 290, 291, 292,
- 293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, -1, -1, -1, 257, 258, 259, 260, -1, -1,
- -1, 123, -1, -1, 126, -1, -1, -1, -1, 272,
- 273, 274, 275, -1, 40, -1, -1, 280, 281, 45,
- -1, 284, 285, 286, -1, 288, 289, 290, 291, 292,
- 293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 257, 258, 259, 260, -1, -1, -1, -1, -1,
- -1, 126, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 40, -1, -1, 280, 281, 45, -1, 284, 285,
- 286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
- 259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
- 126, -1, -1, 272, 273, 274, 275, -1, 40, -1,
- -1, 280, -1, -1, -1, 284, 285, 286, -1, 288,
- 289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 257, 258, 259, 260, -1,
- -1, -1, -1, -1, -1, -1, -1, 126, -1, -1,
- 272, 273, 274, 275, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, 286, -1, 288, 289, 290, 291,
- 292, 293, -1, 295, 296, 297, 298, 299, 300, 301,
- 302, 303, 257, 258, 259, 260, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 286, 287, 288, 289, 290, 291, 292, 293, -1,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, -1,
- -1, 257, 258, 259, 260, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
- 259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 286, -1, 288,
- 289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 257, -1, 259, 260, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 286, -1, 288, 289, 290, 291,
- 292, 293, -1, 295, 296, 297, 298, 299, 300, 301,
- 302, 303, 257, 38, 259, 260, 41, 42, 43, 44,
- -1, -1, 47, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 59, 60, 61, 62, -1, -1,
- -1, 286, -1, 288, 289, 290, 291, 292, 293, -1,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, -1,
- -1, -1, -1, -1, -1, -1, -1, 38, 93, 94,
- 41, 42, 43, 44, 45, -1, 47, -1, 38, -1,
- -1, 41, 42, 43, -1, 45, -1, 47, -1, 60,
- 61, 62, -1, -1, -1, -1, -1, -1, -1, 124,
- 60, 61, 62, 38, -1, -1, 41, 42, 43, -1,
- 45, -1, 47, 38, -1, -1, 41, 42, 43, -1,
- 45, -1, 47, 94, -1, 60, 61, 62, -1, -1,
- -1, -1, -1, -1, 94, 60, 61, 62, 38, -1,
- -1, 41, 42, 43, -1, 45, -1, 47, -1, -1,
- -1, -1, -1, 124, -1, -1, -1, -1, -1, 94,
- 60, 61, 62, 38, 124, -1, 41, 42, 43, 94,
- 45, -1, 47, 38, -1, -1, -1, 42, 43, 44,
- 45, -1, 47, -1, -1, 60, 61, 62, -1, 124,
- -1, -1, -1, -1, 94, 60, 61, 62, 38, 124,
- -1, -1, 42, 43, 44, 45, -1, 47, -1, 38,
- -1, -1, -1, 42, 43, 44, 45, -1, 47, 94,
- 60, 61, 62, -1, 124, -1, -1, -1, -1, 94,
- -1, 60, 61, 62, -1, -1, 261, 262, 263, 264,
- 265, -1, -1, -1, -1, -1, -1, -1, -1, 124,
- -1, -1, -1, -1, 94, -1, 281, 38, -1, 124,
- 41, 42, 43, 38, 45, 94, 47, 42, 43, -1,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, 60,
- 61, 62, -1, -1, 124, 60, 61, 62, -1, -1,
- 261, 262, 263, 264, 265, 124, -1, -1, -1, -1,
- -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
- -1, -1, -1, 94, -1, -1, -1, -1, -1, 94,
- -1, -1, -1, -1, -1, -1, 261, 262, 263, 264,
- 265, -1, -1, -1, -1, -1, 261, 262, 263, 264,
- 265, -1, -1, 124, -1, -1, -1, -1, -1, 124,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 261, 262, 263, 264,
- 265, -1, -1, -1, -1, -1, 261, 262, 263, 264,
- 265, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
- -1, -1, 261, 262, 263, 264, 265, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 261, 262, 263, 264, 265, -1, 261, 262, 263, 264,
- 265,
- };
-
- #define YYFINAL 34
- #ifndef YYDEBUG
- #define YYDEBUG 1
- #endif
- #define YYMAXTOKEN 318
- #if YYDEBUG
- char *yyname[] =
- {
- "end-of-file", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, "'&'", 0, "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, "';'", "'<'", "'='", "'>'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, "'['", 0, "']'", "'^'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, "'{'", "'|'", "'}'", "'~'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "SYMBOL", "KEYWORD", "LITERAL",
- "STRING", "COLON_EQUAL", "GREATER_EQUAL", "LESSER_EQUAL", "NOT_EQUAL", "EQUAL_EQUAL",
- "EQUAL_ARROW", "COLON_COLON", "QUESTION_QUESTION", "ELLIPSIS", "UNRECOGNIZED",
- "EOF_TOKEN", "HASH_T", "HASH_F", "HASH_BRACKET", "HASH_PAREN", "HASH_NEXT",
- "HASH_REST", "HASH_KEY", "HASH_ALL_KEYS", "DEFINE", "END", "GENERIC", "HANDLER", "LET",
- "LOCAL", "METHOD", "OTHERWISE", "CLASS", "CONSTANT", "LIBRARY", "MODULE", "VARIABLE",
- "TEST", "SLOT", "BEGIN_TOKEN", "CASE", "IF", "UNLESS", "UNTIL", "WHILE", "BLOCK", "FOR",
- "SELECT", "USE", "EXPORT", "CREATE", "ELSE", "ELSEIF", "BY", "FINALLY", "THEN", "IN",
- "FROM", "TO", "ABOVE", "BELOW", "CLEANUP", "EXCEPTION",
- };
- char *yyrule[] =
- {
- "$accept : evaluable_constituent",
- "defining_word : CLASS",
- "defining_word : CONSTANT",
- "defining_word : LIBRARY",
- "defining_word : MODULE",
- "defining_word : VARIABLE",
- "defining_word : TEST",
- "evaluable_constituent : ';'",
- "evaluable_constituent : defining_form ';'",
- "evaluable_constituent : expression ';'",
- "evaluable_constituent : local_declaration",
- "evaluable_constituent : EOF_TOKEN",
- "evaluable_constituent : error ';'",
- "evaluable_constituent : error EOF_TOKEN",
- "body :",
- "body : nonempty_body",
- "$$1 :",
- "nonempty_body : $$1 nonempty_constituents",
- "nonempty_constituents : constituent",
- "nonempty_constituents : constituent ';' constituents",
- "constituents :",
- "constituents : constituent",
- "constituents : constituent ';' constituents",
- "constituent : defining_form",
- "constituent : local_declaration",
- "constituent : expression",
- "expression : binary_operand",
- "expression : expression COLON_EQUAL expression",
- "expression : expression '&' expression",
- "expression : expression '|' expression",
- "expression : expression GREATER_EQUAL expression",
- "expression : expression LESSER_EQUAL expression",
- "expression : expression '<' expression",
- "expression : expression '>' expression",
- "expression : expression NOT_EQUAL expression",
- "expression : expression EQUAL_EQUAL expression",
- "expression : expression '=' expression",
- "expression : expression '-' expression",
- "expression : expression '+' expression",
- "expression : expression '/' expression",
- "expression : expression '*' expression",
- "expression : expression '^' expression",
- "binary_operand : KEYWORD",
- "binary_operand : keyless_binary_operand",
- "keyless_binary_operand : operand",
- "keyless_binary_operand : unary_operator operand",
- "unary_operator : '-'",
- "unary_operator : '~'",
- "operand : operand '(' arguments_opt ')'",
- "operand : operand '[' arguments ']'",
- "operand : operand '.' variable_name",
- "operand : leaf",
- "unparenthesized_operand : unparenthesized_operand '(' arguments_opt ')'",
- "unparenthesized_operand : unparenthesized_operand '[' arguments ']'",
- "unparenthesized_operand : unparenthesized_operand '.' variable_name",
- "unparenthesized_operand : unparenthesized_leaf",
- "arguments : KEYWORD expression",
- "arguments : expression",
- "arguments : KEYWORD expression ',' arguments",
- "arguments : expression ',' arguments",
- "leaf : '(' expression ')'",
- "leaf : unparenthesized_leaf",
- "unparenthesized_leaf : literal",
- "unparenthesized_leaf : variable_name",
- "unparenthesized_leaf : METHOD method_body END METHOD_opt",
- "unparenthesized_leaf : statement",
- "literal : LITERAL",
- "literal : strings",
- "literal : HASH_T",
- "literal : HASH_F",
- "literal : HASH_PAREN list_constants_opt ')'",
- "literal : HASH_BRACKET constants_opt ']'",
- "strings : STRING",
- "strings : STRING component_strings",
- "component_strings : STRING",
- "component_strings : STRING component_strings",
- "constants : constant",
- "constants : constant ',' constants",
- "list_constants : constant",
- "list_constants : constant '.' constant",
- "list_constants : constant ',' list_constants",
- "constant : literal",
- "constant : KEYWORD",
- "statement : begin_statement",
- "statement : if_statement",
- "statement : unless_statement",
- "statement : case_statement",
- "statement : select_statement",
- "statement : while_statement",
- "statement : until_statement",
- "statement : for_statement",
- "statement : block_statement",
- "$$2 :",
- "begin_statement : BEGIN_TOKEN $$2 body END",
- "$$3 :",
- "$$4 :",
- "if_statement : IF $$3 '(' expression ')' then_body else_parts $$4 END IF_opt",
- "then_body :",
- "then_body : nonempty_body",
- "else_parts :",
- "else_parts : ELSE",
- "else_parts : ELSE nonempty_body",
- "else_parts : ELSEIF '(' expression ')' body else_parts",
- "unless_statement : UNLESS '(' expression ')' body END UNLESS_opt",
- "case_statement : CASE case_body END CASE_opt",
- "case_body :",
- "$$5 :",
- "case_body : case_label $$5 case_tail SEMICOLON_opt",
- "case_tail :",
- "case_tail : ';'",
- "$$6 :",
- "case_tail : ';' case_label $$6 case_tail",
- "case_tail : constituent",
- "case_tail : constituent ';' case_tail",
- "$$7 :",
- "case_tail : constituent ';' case_label $$7 case_tail",
- "case_label : expression EQUAL_ARROW",
- "case_label : OTHERWISE EQUAL_ARROW_opt",
- "$$8 :",
- "$$9 :",
- "select_statement : SELECT $$8 '(' expression test_opt $$9 ')' select_body END SELECT_opt",
- "test_opt :",
- "test_opt : BY expression",
- "select_body :",
- "$$10 :",
- "select_body : select_label $$10 select_tail SEMICOLON_opt",
- "select_tail :",
- "select_tail : ';'",
- "$$11 :",
- "select_tail : ';' select_label $$11 select_tail",
- "select_tail : constituent",
- "select_tail : constituent ';' select_tail",
- "$$12 :",
- "select_tail : constituent ';' select_label $$12 select_tail",
- "select_label : expressions EQUAL_ARROW",
- "select_label : '(' expression ',' expressions ')' EQUAL_ARROW",
- "select_label : OTHERWISE EQUAL_ARROW_opt",
- "while_statement : WHILE '(' expression ')' body END WHILE_opt",
- "until_statement : UNTIL '(' expression ')' body END UNTIL_opt",
- "$$13 :",
- "$$14 :",
- "$$15 :",
- "for_statement : FOR $$13 '(' for_clauses_opt for_terminator_opt $$14 ')' body finally_opt END $$15 FOR_opt",
- "for_clauses : for_clause comma_opt",
- "for_clauses : for_clause ',' for_clauses",
- "for_clauses_opt :",
- "for_clauses_opt : for_clauses",
- "for_clause : variable '=' expression THEN expression",
- "for_clause : variable IN expression",
- "for_clause : variable FROM expression bound_opt increment_clause_opt",
- "bound_opt :",
- "bound_opt : TO expression",
- "bound_opt : ABOVE expression",
- "bound_opt : BELOW expression",
- "increment_clause_opt :",
- "increment_clause_opt : BY expression",
- "for_terminator_opt :",
- "for_terminator_opt : UNTIL expression",
- "for_terminator_opt : WHILE expression",
- "for_terminator_opt : KEYWORD expression",
- "finally_opt :",
- "finally_opt : FINALLY body",
- "$$16 :",
- "$$17 :",
- "block_statement : BLOCK $$16 '(' variable_name ')' body cleanups $$17 END BLOCK_opt",
- "cleanups :",
- "cleanups : cleanup",
- "cleanups : cleanup ';' cleanups",
- "cleanup : CLEANUP body",
- "cleanup : EXCEPTION '(' exception_args ')' body",
- "exception_args : variable_name",
- "exception_args : variable_name COLON_COLON variable_name comma_arguments_opt",
- "IF_opt :",
- "IF_opt : IF",
- "UNLESS_opt :",
- "UNLESS_opt : UNLESS",
- "CASE_opt :",
- "CASE_opt : CASE",
- "SELECT_opt :",
- "SELECT_opt : SELECT",
- "WHILE_opt :",
- "WHILE_opt : WHILE",
- "UNTIL_opt :",
- "UNTIL_opt : UNTIL",
- "FOR_opt :",
- "FOR_opt : FOR",
- "BLOCK_opt :",
- "BLOCK_opt : BLOCK",
- "defining_form : DEFINE modifiers_opt METHOD method_definition",
- "defining_form : DEFINE modifiers_opt GENERIC generic_function_definition",
- "defining_form : DEFINE VARIABLE bindings",
- "defining_form : DEFINE CONSTANT bindings",
- "$$18 :",
- "defining_form : DEFINE modifiers_opt CLASS $$18 class_definition",
- "$$19 :",
- "defining_form : DEFINE MODULE $$19 module_definition",
- "defining_form : DEFINE TEST SYMBOL '(' arguments_opt ')' body END TEST_opt variable_name_opt",
- "class_definition : variable_name expression_list slot_specs END CLASS_opt variable_name_opt",
- "slot_specs :",
- "slot_specs : slot_spec",
- "slot_specs : slot_spec ';' slot_specs",
- "slot_spec : initialization_argument_spec",
- "slot_spec : slot_modifiers_opt SLOT variable comma_arguments_opt",
- "slot_modifiers_opt :",
- "slot_modifiers_opt : SYMBOL slot_modifiers_opt",
- "slot_modifiers_opt : CLASS slot_modifiers_opt",
- "initialization_argument_spec : SYMBOL KEYWORD comma_arguments_opt",
- "initialization_argument_spec : SYMBOL SYMBOL KEYWORD comma_arguments_opt",
- "method_definition : variable_name method_body END METHOD_opt variable_name_opt",
- "generic_function_definition : variable_name generic_function_body",
- "module_definition : variable_name module_clauses END MODULE_opt variable_name_opt",
- "module_clauses :",
- "module_clauses : module_clause ';' module_clauses",
- "module_clause : use_clause",
- "module_clause : export_clause",
- "module_clause : create_clause",
- "use_clause : USE variable_name property_list_opt",
- "export_clause : EXPORT item_names",
- "create_clause : CREATE item_names",
- "modifiers : SYMBOL",
- "modifiers : SYMBOL modifiers",
- "expression_list : '(' expressions_opt ')'",
- "expressions : expression",
- "expressions : expression ',' expressions",
- "item_names : variable_name",
- "item_names : variable_name ',' item_names",
- "$$20 :",
- "method_body : '(' parameter_list_opt ')' $$20 SEMICOLON_opt body",
- "method_body : '(' parameter_list_opt ')' EQUAL_ARROW variable ';' body",
- "method_body : '(' parameter_list_opt ')' EQUAL_ARROW '(' value_list_opt ')' SEMICOLON_opt body",
- "generic_function_body : '(' parameter_list_opt ')'",
- "generic_function_body : '(' parameter_list_opt ')' EQUAL_ARROW variable",
- "generic_function_body : '(' parameter_list_opt ')' EQUAL_ARROW '(' value_list_opt ')'",
- "parameter_list : parameter",
- "parameter_list : parameter_list ',' parameter",
- "parameter_list : parameter_list ',' next_rest_key_parameter_list",
- "parameter_list : next_rest_key_parameter_list",
- "next_rest_key_parameter_list : HASH_NEXT variable_name",
- "next_rest_key_parameter_list : HASH_NEXT variable_name ',' rest_key_parameter_list",
- "next_rest_key_parameter_list : rest_key_parameter_list",
- "rest_key_parameter_list : HASH_REST variable_name",
- "rest_key_parameter_list : HASH_REST variable_name ',' key_parameter_list",
- "rest_key_parameter_list : key_parameter_list",
- "key_parameter_list : HASH_KEY",
- "key_parameter_list : HASH_KEY ',' HASH_ALL_KEYS",
- "key_parameter_list : HASH_KEY keyword_parameters",
- "key_parameter_list : HASH_ALL_KEYS",
- "parameter : variable_name type_designator_opt",
- "parameter : variable_name EQUAL_EQUAL expression",
- "keyword_parameters : keyword_parameter",
- "keyword_parameters : HASH_ALL_KEYS",
- "keyword_parameters : keyword_parameter ',' keyword_parameters",
- "keyword_parameter : KEYWORD variable_name_opt default_opt",
- "keyword_parameter : variable_name default_opt",
- "default : '=' expression",
- "local_declaration : LET bindings",
- "local_declaration : LET HANDLER condition '=' handler",
- "$$21 :",
- "local_declaration : LOCAL $$21 local_methods",
- "condition : unparenthesized_operand",
- "condition : '(' type property_list_opt ')'",
- "handler : expression",
- "local_methods : METHOD_opt method_definition",
- "$$22 :",
- "local_methods : METHOD_opt method_definition ',' $$22 local_methods",
- "bindings : variable '=' expression",
- "bindings : '(' variable_list ')' '=' expression",
- "variable_list : variable",
- "variable_list : variable ',' variable_list",
- "variable_list : HASH_REST variable_name",
- "value_variable_list : variable",
- "value_variable_list : variable ',' value_variable_list",
- "value_variable_list : HASH_REST variable",
- "variable : variable_name type_designator_opt",
- "variable_name : SYMBOL",
- "variable_name : defining_word",
- "variable_name_opt :",
- "variable_name_opt : variable_name",
- "type_designator : COLON_COLON type",
- "type : operand",
- "property_list : property",
- "property_list : property property_list",
- "property : ',' KEYWORD value",
- "value : expression",
- "value : '{' property_set_opt '}'",
- "property_set : property_set_member",
- "property_set : property_set_member ',' property_set",
- "property_set_member : property_set_item",
- "property_set_member : property_set_item EQUAL_ARROW property_set_item",
- "property_set_item : variable_name",
- "EQUAL_ARROW_opt :",
- "EQUAL_ARROW_opt : EQUAL_ARROW",
- "METHOD_opt :",
- "METHOD_opt : METHOD",
- "CLASS_opt :",
- "CLASS_opt : CLASS",
- "TEST_opt :",
- "TEST_opt : TEST",
- "MODULE_opt :",
- "MODULE_opt : MODULE",
- "SEMICOLON_opt :",
- "SEMICOLON_opt : ';'",
- "comma_opt :",
- "comma_opt : ','",
- "comma_arguments_opt :",
- "comma_arguments_opt : ',' arguments",
- "arguments_opt :",
- "arguments_opt : arguments",
- "constants_opt :",
- "constants_opt : constants",
- "list_constants_opt :",
- "list_constants_opt : list_constants",
- "default_opt :",
- "default_opt : default",
- "expressions_opt :",
- "expressions_opt : expressions",
- "modifiers_opt :",
- "modifiers_opt : modifiers",
- "parameter_list_opt :",
- "parameter_list_opt : parameter_list",
- "property_list_opt :",
- "property_list_opt : property_list",
- "property_set_opt :",
- "property_set_opt : property_set",
- "type_designator_opt :",
- "type_designator_opt : type_designator",
- "value_list_opt :",
- "value_list_opt : value_variable_list",
- };
-
- #endif
- #ifndef YYSTYPE
- typedef int YYSTYPE;
-
- #endif
- #define yyclearin (yychar=(-1))
- #define yyerrok (yyerrflag=0)
- #ifdef YYSTACKSIZE
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH YYSTACKSIZE
- #endif
- #else
- #ifdef YYMAXDEPTH
- #define YYSTACKSIZE YYMAXDEPTH
- #else
- #define YYSTACKSIZE 500
- #define YYMAXDEPTH 500
- #endif
- #endif
- int yydebug;
- int yynerrs;
- int yyerrflag;
- int yychar;
- short *yyssp;
- YYSTYPE *yyvsp;
- YYSTYPE yyval;
- YYSTYPE yylval;
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
-
- #define yystacksize YYSTACKSIZE
- #line 1306 "dylan.y"
-
- void
- yyerror (char *s)
- {
- char line_str[20];
-
- sprintf (line_str, " [line #%d]", yylineno);
- warning (s,
- make_byte_string (yytext),
- make_byte_string (line_str),
- NULL);
- }
-
- /*
- * append_bang appends l2 to l1 if l1 is nonempty.
- * if l1 is empty, it just returns l2.
- */
- static Object
- append_bang (Object l1, Object l2)
- {
- Object res = l1;
-
- if (EMPTYLISTP (l1)) {
- return l2;
- #if 0
- fprintf (stderr, "Whoa! append! to empty_list!\n");
- abort ();
- #endif
- }
- while (PAIRP (CDR (l1))) {
- l1 = CDR (l1);
- }
- CDR (l1) = l2;
- return res;
- }
-
- static void
- push_bindings ()
- {
- binding_stack = cons (make_integer (0), binding_stack);
- }
-
- static void
- pop_bindings ()
- {
- binding_stack = CDR (binding_stack);
- }
-
-
- static Object
- bindings_top ()
- {
- return CAR (binding_stack);
- }
-
- static Object
- bindings_increment ()
- {
- CAR (binding_stack) = make_integer (INTVAL (CAR (binding_stack)) + 1);
- }
-
- static Object
- make_setter_expr (Object place, Object value)
- {
- Object newsym;
-
- if (!PAIRP (place)) {
- error ("Trying to make a setter from something that's not a place",
- place, NULL);
- }
- newsym = gensym (1);
- return listem (unbinding_begin_symbol,
- make_integer (1),
- cons (local_bind_symbol,
- cons (cons (cons (newsym,
- cons (value,
- make_empty_list ())),
- make_empty_list ()),
- make_empty_list ())),
- cons (make_setter_symbol (FIRST (place)),
- cons (newsym, CDR (place))),
- newsym,
- NULL);
- }
-
- #define GENSYM_BUFSIZE 128
- char gensymbuf[GENSYM_BUFSIZE];
-
- static Object
- gensym (int i)
- {
- sprintf (gensymbuf, "\"tmp%d", i);
- return make_symbol (gensymbuf);
- }
-
- int
- allocation_word (Object word)
- {
- return (id (word, instance_symbol) || id (word, class_symbol)
- || id (word, each_subclass_symbol) || id (word, constant_symbol)
- || id (word, virtual_symbol) || id (word, inherited_symbol));
- }
-
- #ifdef OPTIMIZE_SPECIALIZERS
- static void
- symtab_push_begin ()
- {
- symtab = cons (make_table (DEFAULT_TABLE_SIZE), symtab);
- }
-
- static void
- symtab_insert_bindings (Object bindings)
- {
- Object variable;
-
- #if 0
- warning ("Got symtab_insert_bindings", bindings, NULL);
- #endif
-
- /*
- * bindings created by parser are always of form
- * #( #( variable1, variable2, ... , variablen, values))
- */
- bindings = CAR (bindings);
- while (!EMPTYLISTP (CDR (bindings))) {
- variable = CAR (bindings);
- if (PAIRP (variable)) {
- #if 0
- warning (" symtab element",
- CAR (variable),
- SECOND (variable),
- NULL);
- #endif
- table_element_setter (CAR (symtab),
- CAR (variable),
- SECOND (variable));
- }
- bindings = CDR (bindings);
- }
- }
-
- static void
- symtab_push_parameters (Object parameters)
- {
- Object variable;
-
- symtab = cons (make_table (DEFAULT_TABLE_SIZE), symtab);
- #if 0
- warning ("Got symtab_insert_parameters", parameters, NULL);
- #endif
-
- while (PAIRP (parameters)) {
- variable = CAR (parameters);
- if (!PAIRP (variable) && !SYMBOLP (variable)) {
- /* we got to a keyword parameter or a hash-word */
- break;
- }
- if (PAIRP (variable)) {
- #if 0
- warning (" symtab element",
- CAR (variable),
- SECOND (variable),
- NULL);
- #endif
- table_element_setter (CAR (symtab),
- CAR (variable),
- SECOND (variable));
- }
- parameters = CDR (parameters);
- }
- }
-
- static void
- symtab_pop ()
- {
- symtab = CDR (symtab);
- }
-
- #endif
- #line 1888 "y.tab.c"
- #define YYABORT goto yyabort
- #define YYACCEPT goto yyaccept
- #define YYERROR goto yyerrlab
- int
- yyparse ()
- {
- register int yym, yyn, yystate;
-
- #if YYDEBUG
- register char *yys;
- extern char *getenv ();
-
- if (yys = getenv ("YYDEBUG")) {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
- #endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
- yyloop:
- if (yyn = yydefred[yystate])
- goto yyreduce;
- if (yychar < 0) {
- if ((yychar = yylex ()) < 0)
- yychar = 0;
- #if YYDEBUG
- if (yydebug) {
- yys = 0;
- if (yychar <= YYMAXTOKEN)
- yys = yyname[yychar];
- if (!yys)
- yys = "illegal-symbol";
- printf ("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
- #endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1) {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0)
- --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag)
- goto yyinrecovery;
- #ifdef lint
- goto yynewerror;
- #endif
- yynewerror:
- yyerror ("syntax error");
- #ifdef lint
- goto yyerrlab;
- #endif
- yyerrlab:
- ++yynerrs;
- yyinrecovery:
- if (yyerrflag < 3) {
- yyerrflag = 3;
- for (;;) {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1) {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- } else {
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: error recovery discarding state %d\n",
- *yyssp);
- #endif
- if (yyssp <= yyss)
- goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- } else {
- if (yychar == 0)
- goto yyabort;
- #if YYDEBUG
- if (yydebug) {
- yys = 0;
- if (yychar <= YYMAXTOKEN)
- yys = yyname[yychar];
- if (!yys)
- yys = "illegal-symbol";
- printf ("yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
- #endif
- yychar = (-1);
- goto yyloop;
- }
- yyreduce:
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
- yym = yylen[yyn];
- yyval = yyvsp[1 - yym];
- switch (yyn) {
- case 7:
- #line 199 "dylan.y"
- {
- *parse_value_ptr = unspecified_object;
- YYACCEPT;
- }
- break;
- case 8:
- #line 202 "dylan.y"
- {
- *parse_value_ptr = yyvsp[-1];
- YYACCEPT;
- }
- break;
- case 9:
- #line 205 "dylan.y"
- {
- *parse_value_ptr = yyvsp[-1];
- YYACCEPT;
- }
- break;
- case 10:
- #line 208 "dylan.y"
- {
- *parse_value_ptr = unspecified_object;
- warning ("local binding outside of block ignored", NULL);
- YYACCEPT;
- }
- break;
- case 11:
- #line 217 "dylan.y"
- {
- *parse_value_ptr = eof_object;
- YYACCEPT;
- }
- break;
- case 12:
- #line 220 "dylan.y"
- {
- yyerrok;
- *parse_value_ptr = unspecified_object;
- YYACCEPT;
- }
- break;
- case 13:
- #line 225 "dylan.y"
- {
- yyerrok;
- *parse_value_ptr = eof_object;
- YYACCEPT;
- }
- break;
- case 14:
- #line 231 "dylan.y"
- {
- yyval = unspecified_object;
- }
- break;
- case 15:
- #line 232 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 16:
- #line 235 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 17:
- #line 239 "dylan.y"
- {
- if (INTVAL (bindings_top ()) > 0) {
- yyval = cons (unbinding_begin_symbol,
- cons (bindings_top (), yyvsp[0]));
- } else if (list_length (yyvsp[0]) > 1) {
- yyval = cons (begin_symbol, yyvsp[0]);
- } else {
- yyval = FIRST (yyvsp[0]);
- }
- pop_bindings ();
- }
- break;
- case 18:
- #line 253 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 19:
- #line 254 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 20:
- #line 257 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 21:
- #line 258 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 22:
- #line 259 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 23:
- #line 266 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 24:
- #line 267 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 25:
- #line 268 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 26:
- #line 276 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 27:
- #line 279 "dylan.y"
- {
- if (SYMBOLP (yyvsp[-2])) {
- yyval = listem (set_bang_symbol, yyvsp[-2], yyvsp[0], NULL);
- } else {
- yyval = make_setter_expr (yyvsp[-2], yyvsp[0]);
- }
- }
- break;
- case 28:
- #line 286 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 29:
- #line 288 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 30:
- #line 290 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 31:
- #line 292 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 32:
- #line 294 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 33:
- #line 296 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 34:
- #line 298 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 35:
- #line 300 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 36:
- #line 302 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 37:
- #line 304 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 38:
- #line 306 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 39:
- #line 308 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 40:
- #line 310 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 41:
- #line 312 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 42:
- #line 319 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 43:
- #line 320 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 44:
- #line 323 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 45:
- #line 325 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 46:
- #line 328 "dylan.y"
- {
- yyval = negative_symbol;
- }
- break;
- case 47:
- #line 329 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 48:
- #line 333 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- yyval = cons (yyvsp[-3], yyvsp[-1]);
- #else
- yyval = cons (yyvsp[-3], yyvsp[-1]);
- #endif
- }
- break;
- case 49:
- #line 341 "dylan.y"
- {
- yyval = cons (element_symbol, cons (yyvsp[-3], yyvsp[-1]));
- }
- break;
- case 50:
- #line 343 "dylan.y"
- {
- yyval = cons (yyvsp[0], cons (yyvsp[-2], make_empty_list ()));
- }
- break;
- case 51:
- #line 344 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 52:
- #line 348 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- yyval = cons (yyvsp[-3], yyvsp[-1]);
- #else
- yyval = cons (yyvsp[-3], yyvsp[-1]);
- #endif
- }
- break;
- case 53:
- #line 356 "dylan.y"
- {
- yyval = cons (element_symbol, cons (yyvsp[-3], yyvsp[-1]));
- }
- break;
- case 54:
- #line 358 "dylan.y"
- {
- yyval = cons (yyvsp[0], cons (yyvsp[-2], make_empty_list ()));
- }
- break;
- case 55:
- #line 359 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 56:
- #line 362 "dylan.y"
- {
- yyval = listem (yyvsp[-1], yyvsp[0], NULL);
- }
- break;
- case 57:
- #line 363 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 58:
- #line 365 "dylan.y"
- {
- yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
- }
- break;
- case 59:
- #line 367 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 60:
- #line 369 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 61:
- #line 370 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 62:
- #line 373 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 63:
- #line 374 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 64:
- #line 376 "dylan.y"
- {
- yyval = cons (yyvsp[-3], yyvsp[-2]);
- }
- break;
- case 65:
- #line 377 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 66:
- #line 379 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 67:
- #line 380 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 68:
- #line 381 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 69:
- #line 382 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 70:
- #line 384 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 71:
- #line 386 "dylan.y"
- {
- yyval = make_sov (yyvsp[-1]);
- }
- break;
- case 72:
- #line 388 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 73:
- #line 390 "dylan.y"
- {
- yyval = cons (concatenate_symbol, cons (yyvsp[-1], yyvsp[0]));
- }
- break;
- case 74:
- #line 393 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 75:
- #line 395 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 76:
- #line 397 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 77:
- #line 398 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 78:
- #line 401 "dylan.y"
- {
- yyval = listem (pair_symbol,
- yyvsp[0],
- make_empty_list (),
- NULL);
- }
- break;
- case 79:
- #line 406 "dylan.y"
- {
- yyval = listem (pair_symbol, yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 80:
- #line 408 "dylan.y"
- {
- yyval = listem (pair_symbol, yyvsp[-2], yyvsp[0], NULL);
- }
- break;
- case 81:
- #line 412 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 82:
- #line 413 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 83:
- #line 419 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 84:
- #line 420 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 85:
- #line 421 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 86:
- #line 422 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 87:
- #line 423 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 88:
- #line 424 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 89:
- #line 425 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 90:
- #line 426 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 91:
- #line 427 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 92:
- #line 435 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_push_begin ();
- #endif
- }
- break;
- case 93:
- #line 441 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_pop ();
- #endif
- yyval = yyvsp[-1];
- }
- break;
- case 94:
- #line 450 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 95:
- #line 453 "dylan.y"
- {
- pop_intermediate_words ();
- }
- break;
- case 96:
- #line 455 "dylan.y"
- {
- yyval = cons (yyvsp[-9],
- cons (yyvsp[-6],
- append_bang (cons (yyvsp[-4],
- make_empty_list ()),
- yyvsp[-3])));
- }
- break;
- case 97:
- #line 462 "dylan.y"
- {
- yyval = false_object;
- }
- break;
- case 98:
- #line 463 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 99:
- #line 466 "dylan.y"
- {
- yyval = cons (false_object, make_empty_list ());
- }
- break;
- case 100:
- #line 467 "dylan.y"
- {
- yyval = cons (false_object, make_empty_list ());
- }
- break;
- case 101:
- #line 468 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 102:
- #line 470 "dylan.y"
- {
- yyval = cons (cons (if_symbol,
- cons (yyvsp[-3],
- append_bang (cons (yyvsp[-1],
- make_empty_list ()),
- yyvsp[0]))),
- make_empty_list ());
- }
- break;
- case 103:
- #line 480 "dylan.y"
- {
- yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
- }
- break;
- case 104:
- #line 486 "dylan.y"
- {
- yyval = cons (cond_symbol, yyvsp[-2]);
- }
- break;
- case 105:
- #line 489 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 106:
- #line 491 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 107:
- #line 493 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-3], !EMPTYLISTP (CAR (yyvsp[-1]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[-1]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[-1]));
- }
- break;
- case 108:
- #line 504 "dylan.y"
- {
- yyval = cons (make_empty_list (), make_empty_list ());
- }
- break;
- case 109:
- #line 505 "dylan.y"
- {
- yyval = cons (make_empty_list (), make_empty_list ());
- }
- break;
- case 110:
- #line 507 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 111:
- #line 509 "dylan.y"
- {
- yyval = cons (make_empty_list (),
- cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[0]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[0])));
- pop_bindings ();
- }
- break;
- case 112:
- #line 521 "dylan.y"
- {
- yyval = cons (cons (yyvsp[0], make_empty_list ()), make_empty_list ());
- }
- break;
- case 113:
- #line 524 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-2], FIRST (yyvsp[0])), CDR (yyvsp[0]));
- }
- break;
- case 114:
- #line 527 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 115:
- #line 529 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-4], make_empty_list ()),
- cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[0]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[0])));
- pop_bindings ();
- }
- break;
- case 116:
- #line 545 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 117:
- #line 547 "dylan.y"
- {
- yyval = else_keyword;
- }
- break;
- case 118:
- #line 550 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 119:
- #line 552 "dylan.y"
- {
- pop_intermediate_words ();
- }
- break;
- case 120:
- #line 555 "dylan.y"
- {
- yyval = cons (yyvsp[-9], cons (yyvsp[-6], cons (yyvsp[-5] ? yyvsp[-5] : equal_equal_symbol,
- yyvsp[-2])));
- }
- break;
- case 121:
- #line 559 "dylan.y"
- {
- yyval = NULL;
- }
- break;
- case 122:
- #line 560 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 123:
- #line 562 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 124:
- #line 564 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 125:
- #line 566 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-3], !EMPTYLISTP (CAR (yyvsp[-1]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[-1]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[-1]));
- }
- break;
- case 126:
- #line 576 "dylan.y"
- {
- yyval = cons (make_empty_list (), make_empty_list ());
- }
- break;
- case 127:
- #line 577 "dylan.y"
- {
- yyval = cons (make_empty_list (), make_empty_list ());
- }
- break;
- case 128:
- #line 579 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 129:
- #line 581 "dylan.y"
- {
- yyval = cons (make_empty_list (),
- cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[0]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[0])));
- pop_bindings ();
- }
- break;
- case 130:
- #line 593 "dylan.y"
- {
- yyval = cons (cons (yyvsp[0], make_empty_list ()), make_empty_list ());
- }
- break;
- case 131:
- #line 596 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-2], FIRST (yyvsp[0])), CDR (yyvsp[0]));
- }
- break;
- case 132:
- #line 599 "dylan.y"
- {
- push_bindings ();
- }
- break;
- case 133:
- #line 601 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-4], make_empty_list ()),
- cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
- ? cons (cons (unbinding_begin_symbol,
- cons (bindings_top (),
- CAR (yyvsp[0]))),
- make_empty_list ())
- : make_empty_list ()),
- CDR (yyvsp[0])));
- pop_bindings ();
- }
- break;
- case 134:
- #line 617 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 135:
- #line 619 "dylan.y"
- {
- yyval = cons (yyvsp[-4], yyvsp[-2]);
- }
- break;
- case 136:
- #line 621 "dylan.y"
- {
- yyval = else_keyword;
- }
- break;
- case 137:
- #line 625 "dylan.y"
- {
- yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
- }
- break;
- case 138:
- #line 629 "dylan.y"
- {
- yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
- }
- break;
- case 139:
- #line 632 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 140:
- #line 635 "dylan.y"
- {
- pop_intermediate_words ();
- }
- break;
- case 141:
- #line 637 "dylan.y"
- {
- pop_intermediate_words ();
- }
- break;
- case 142:
- #line 638 "dylan.y"
- {
- yyval = listem (for_symbol,
- yyvsp[-8],
- append_bang (yyvsp[-7], yyvsp[-3]),
- yyvsp[-4],
- NULL);
- }
- break;
- case 143:
- #line 645 "dylan.y"
- {
- yyval = cons (yyvsp[-1], make_empty_list ());
- }
- break;
- case 144:
- #line 646 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 145:
- #line 649 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 146:
- #line 650 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 147:
- #line 654 "dylan.y"
- {
- yyval = cons (yyvsp[-4], cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
- }
- break;
- case 148:
- #line 656 "dylan.y"
- {
- yyval = cons (collection_keyword,
- cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
- }
- break;
- case 149:
- #line 659 "dylan.y"
- {
- yyval = cons (range_keyword,
- cons (yyvsp[-4],
- cons (yyvsp[-2],
- append_bang (yyvsp[-1], yyvsp[0]))));
- }
- break;
- case 150:
- #line 665 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 151:
- #line 667 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 152:
- #line 669 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 153:
- #line 671 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 154:
- #line 674 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 155:
- #line 676 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 156:
- #line 679 "dylan.y"
- {
- yyval = cons (false_object,
- make_empty_list ());
- }
- break;
- case 157:
- #line 681 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 158:
- #line 682 "dylan.y"
- {
- yyval = cons (cons (not_symbol,
- cons (yyvsp[0],
- make_empty_list ())),
- make_empty_list ());
- }
- break;
- case 159:
- #line 686 "dylan.y"
- {
- if (yyvsp[-1] == until_keyword) {
- yyval = cons (yyvsp[0], make_empty_list ());
- } else if (yyvsp[-1] == while_keyword) {
- yyval = cons (cons (not_symbol,
- cons (yyvsp[0],
- make_empty_list ())),
- make_empty_list ());
- } else {
- error ("Bogus keyword in if",
- yyvsp[-1],
- NULL);
- }
- }
- break;
- case 160:
- #line 701 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 161:
- #line 702 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 162:
- #line 705 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 163:
- #line 707 "dylan.y"
- {
- pop_intermediate_words ();
- }
- break;
- case 165:
- #line 711 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 166:
- #line 712 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 167:
- #line 713 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 168:
- #line 716 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 169:
- #line 718 "dylan.y"
- {
- yyval = cons (yyvsp[-4], cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
- }
- break;
- case 170:
- #line 721 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 171:
- #line 723 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-3], cons (yyvsp[-1], make_empty_list ())), yyvsp[0]);
- }
- break;
- case 188:
- #line 760 "dylan.y"
- {
- yyval = cons (define_method_symbol, yyvsp[0]);
- }
- break;
- case 189:
- #line 764 "dylan.y"
- {
- yyval = cons (define_generic_function_symbol, yyvsp[0]);
- }
- break;
- case 190:
- #line 769 "dylan.y"
- {
- yyval = cons (define_variable_symbol, CAR (yyvsp[0]));
- }
- break;
- case 191:
- #line 772 "dylan.y"
- {
- yyval = cons (define_constant_symbol, CAR (yyvsp[0]));
- }
- break;
- case 192:
- #line 775 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 193:
- #line 777 "dylan.y"
- {
- pop_intermediate_words ();
- if (EMPTYLISTP (yyvsp[-3])) {
- yyval = cons (define_class_symbol, yyvsp[0]);
- } else {
- yyval = cons (define_class_symbol,
- cons (cons (modifiers_keyword,
- yyvsp[-3]),
- yyvsp[0]));
- }
- }
- break;
- case 194:
- #line 792 "dylan.y"
- {
- push_intermediate_words (yyvsp[0]);
- }
- break;
- case 195:
- #line 794 "dylan.y"
- {
- yyval = cons (define_module_symbol, yyvsp[0]);
- }
- break;
- case 196:
- #line 798 "dylan.y"
- {
- yyval = listem (define_test_symbol, yyvsp[-7], yyvsp[-5],
- empty_string, yyvsp[-3], NULL);
- }
- break;
- case 197:
- #line 804 "dylan.y"
- {
- yyval = cons (yyvsp[-5], cons (yyvsp[-4], yyvsp[-3]));
- }
- break;
- case 198:
- #line 807 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 199:
- #line 808 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 200:
- #line 809 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 201:
- #line 813 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 202:
- #line 816 "dylan.y"
- {
- Object mods, mod;
- Object allocation, getter_name, slot_type, dynamism;
- int dynamism_specified = 0, allocation_specified = 0;
- int slot_type_specified = 0;
-
- slot_type = cons (type_keyword,
- cons (CLASSNAME (object_class),
- make_empty_list ()));
- allocation = cons (allocation_keyword,
- cons (instance_symbol,
- make_empty_list ()));
- dynamism = cons (dynamism_keyword,
- cons (open_symbol,
- make_empty_list ()));
- if (PAIRP (yyvsp[-1])) {
- getter_name = CAR (yyvsp[-1]);
- slot_type_specified = 1;
- SECOND (slot_type) = SECOND (yyvsp[-1]);
- } else {
- getter_name = yyvsp[-1];
- }
- mods = yyvsp[-3];
- while (PAIRP (mods)) {
- mod = CAR (mods);
- if (id (mod, open_symbol)) {
- if (dynamism_specified) {
- error ("Slot dyanamism specified twice", NULL);
- }
- dynamism_specified = 1;
- } else if (id (mod, sealed_symbol)) {
- if (dynamism_specified) {
- error ("Slot dyanamism specified twice", NULL);
- }
- SECOND (dynamism) = sealed_symbol;
- } else if (allocation_word (mod)) {
- if (allocation_specified) {
- error ("Slot allocation specified twice", NULL);
- }
- allocation_specified = 1;
- SECOND (allocation) = mod;
- if (!EMPTYLISTP (CDR (mods))) {
- error ("Slot modifiers follow allocation",
- mods, NULL);
- }
- }
- mods = CDR (mods);
- }
- yyval = cons (getter_name, yyvsp[0]);
- if (slot_type_specified) {
- append_bang (yyval, slot_type);
- }
- if (allocation_specified) {
- append_bang (yyval, allocation);
- }
- if (dynamism_specified) {
- append_bang (yyval, dynamism);
- }
- }
- break;
- case 203:
- #line 876 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 204:
- #line 877 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 205:
- #line 878 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 206:
- #line 882 "dylan.y"
- {
- if (yyvsp[-2] != keyword_symbol) {
- error ("Bad initialization argument specification", NULL);
- } else {
- yyval = cons (init_keyword_keyword, cons (yyvsp[-1], yyvsp[0]));
- }
- }
- break;
- case 207:
- #line 890 "dylan.y"
- {
- if (yyvsp[-3] != required_symbol || yyvsp[-2] != keyword_symbol) {
- error ("Bad initialization argument specification", NULL);
- } else {
- yyval = cons (required_init_keyword_keyword,
- cons (yyvsp[-1], yyvsp[0]));
- }
- }
- break;
- case 208:
- #line 901 "dylan.y"
- {
- yyval = cons (yyvsp[-4], yyvsp[-3]);
- }
- break;
- case 209:
- #line 905 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 210:
- #line 913 "dylan.y"
- {
- yyval = cons (yyvsp[-4], yyvsp[-3]);
- }
- break;
- case 211:
- #line 916 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 212:
- #line 918 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 213:
- #line 921 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 214:
- #line 922 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 215:
- #line 923 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 216:
- #line 927 "dylan.y"
- {
- yyval = cons (yyvsp[-2], cons (yyvsp[-1], yyvsp[0]));
- }
- break;
- case 217:
- #line 930 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 218:
- #line 932 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 219:
- #line 935 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 220:
- #line 936 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 221:
- #line 939 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 222:
- #line 942 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 223:
- #line 943 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 224:
- #line 962 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 225:
- #line 963 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 226:
- #line 970 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_push_parameters (yyvsp[-1]);
- #endif
- }
- break;
- case 227:
- #line 976 "dylan.y"
- {
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_pop ();
- #endif
- yyval = cons (yyvsp[-4], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 228:
- #line 983 "dylan.y"
- {
- yyval = cons (append_bang (yyvsp[-5],
- cons (hash_values_symbol,
- cons (yyvsp[-2], make_empty_list ()))),
- cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 229:
- #line 989 "dylan.y"
- {
- yyval = cons (append_bang (yyvsp[-7],
- cons (hash_values_symbol, yyvsp[-3])),
- cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 230:
- #line 994 "dylan.y"
- {
- yyval = cons (yyvsp[-1], make_empty_list ());
- }
- break;
- case 231:
- #line 996 "dylan.y"
- {
- yyval = cons (append_bang (yyvsp[-3], cons (hash_values_symbol,
- cons (yyvsp[0], make_empty_list ()))),
- make_empty_list ());
- }
- break;
- case 232:
- #line 1000 "dylan.y"
- {
- yyval = cons (append_bang (yyvsp[-5], cons (hash_values_symbol, yyvsp[-1])),
- make_empty_list ());
- }
- break;
- case 233:
- #line 1004 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 234:
- #line 1006 "dylan.y"
- {
- yyval = append_bang (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 235:
- #line 1008 "dylan.y"
- {
- yyval = append_bang (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 236:
- #line 1010 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 237:
- #line 1014 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 238:
- #line 1016 "dylan.y"
- {
- yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
- }
- break;
- case 239:
- #line 1018 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 240:
- #line 1022 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 241:
- #line 1024 "dylan.y"
- {
- yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
- }
- break;
- case 242:
- #line 1026 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 243:
- #line 1029 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 244:
- #line 1031 "dylan.y"
- {
- yyval = cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 245:
- #line 1033 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 246:
- #line 1035 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 247:
- #line 1039 "dylan.y"
- {
- yyval = (yyvsp[0] ? cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()))
- : yyvsp[-1]);
- }
- break;
- case 248:
- #line 1043 "dylan.y"
- {
- yyval = cons (yyvsp[-2], cons (cons (singleton_symbol,
- cons (yyvsp[0], make_empty_list ())),
- make_empty_list ()));
- }
- break;
- case 249:
- #line 1048 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 250:
- #line 1049 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 251:
- #line 1051 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 252:
- #line 1056 "dylan.y"
- {
- if (yyvsp[0]) {
- if (yyvsp[-1]) {
- yyval = cons (yyvsp[-2], cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ())));
- } else {
- yyval = cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
- }
- } else {
- yyval = cons (yyvsp[-2], cons (yyvsp[-1], make_empty_list ()));
- }
- }
- break;
- case 253:
- #line 1068 "dylan.y"
- {
- if (yyvsp[0]) {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- } else {
- yyval = yyvsp[-1];
- }
- }
- break;
- case 254:
- #line 1075 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 255:
- #line 1097 "dylan.y"
- {
- bindings_increment ();
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_insert_bindings (yyvsp[0]);
- #endif
- yyval = cons (local_bind_symbol,
- cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 257:
- #line 1105 "dylan.y"
- {
- methnames = methdefs = make_empty_list ();
- }
- break;
- case 258:
- #line 1108 "dylan.y"
- {
- Object methbindings = cons (append (methnames,
- cons (cons (values_symbol,
- methdefs),
- make_empty_list ())),
- make_empty_list ());
-
- #ifdef OPTIMIZE_SPECIALIZERS
- symtab_insert_bindings (methbindings);
- #endif
- bindings_increment ();
- yyval = cons (local_bind_symbol,
- cons (methbindings,
- make_empty_list ()));
- }
- break;
- case 259:
- #line 1124 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 261:
- #line 1127 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 262:
- #line 1131 "dylan.y"
- {
- methnames = cons (FIRST (yyvsp[0]), methnames);
- methdefs = cons (cons (method_symbol, CDR (yyvsp[0])), methdefs);
- }
- break;
- case 263:
- #line 1136 "dylan.y"
- {
- methnames = cons (FIRST (yyvsp[-1]), methnames);
- methdefs = cons (cons (method_symbol, CDR (yyvsp[-1])), methdefs);
- }
- break;
- case 265:
- #line 1144 "dylan.y"
- {
- yyval = cons (cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())),
- make_empty_list ());
- }
- break;
- case 266:
- #line 1147 "dylan.y"
- {
- yyval = cons (append_bang (yyvsp[-3], cons (yyvsp[0], make_empty_list ())),
- make_empty_list ());
- }
- break;
- case 267:
- #line 1151 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 268:
- #line 1153 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 269:
- #line 1155 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 270:
- #line 1159 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 271:
- #line 1161 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 272:
- #line 1163 "dylan.y"
- {
- yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
- }
- break;
- case 273:
- #line 1167 "dylan.y"
- {
- yyval = (yyvsp[0] ? cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()))
- : yyvsp[-1]);
- }
- break;
- case 274:
- #line 1171 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 275:
- #line 1172 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 276:
- #line 1175 "dylan.y"
- {
- yyval = NULL;
- }
- break;
- case 277:
- #line 1176 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 278:
- #line 1179 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 279:
- #line 1181 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 280:
- #line 1187 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 281:
- #line 1188 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 282:
- #line 1192 "dylan.y"
- {
- yyval = cons (yyvsp[-1], yyvsp[0]);
- }
- break;
- case 283:
- #line 1194 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 284:
- #line 1195 "dylan.y"
- {
- yyval = yyvsp[-1];
- }
- break;
- case 285:
- #line 1198 "dylan.y"
- {
- yyval = cons (yyvsp[0], make_empty_list ());
- }
- break;
- case 286:
- #line 1199 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 287:
- #line 1202 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 288:
- #line 1204 "dylan.y"
- {
- yyval = cons (yyvsp[-2], yyvsp[0]);
- }
- break;
- case 289:
- #line 1207 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 290:
- #line 1213 "dylan.y"
- {
- yyval = NULL;
- }
- break;
- case 291:
- #line 1214 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 304:
- #line 1241 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 305:
- #line 1242 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 306:
- #line 1245 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 307:
- #line 1246 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 308:
- #line 1249 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 309:
- #line 1250 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 310:
- #line 1253 "dylan.y"
- {
- yyval = cons (list_symbol,
- make_empty_list ());
- }
- break;
- case 311:
- #line 1255 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 312:
- #line 1258 "dylan.y"
- {
- yyval = NULL;
- }
- break;
- case 313:
- #line 1259 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 314:
- #line 1272 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 315:
- #line 1273 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 316:
- #line 1282 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 317:
- #line 1283 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 318:
- #line 1286 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 319:
- #line 1287 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 320:
- #line 1290 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 321:
- #line 1291 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 322:
- #line 1294 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 323:
- #line 1295 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 324:
- #line 1298 "dylan.y"
- {
- yyval = NULL;
- }
- break;
- case 325:
- #line 1299 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- case 326:
- #line 1302 "dylan.y"
- {
- yyval = make_empty_list ();
- }
- break;
- case 327:
- #line 1303 "dylan.y"
- {
- yyval = yyvsp[0];
- }
- break;
- #line 3467 "y.tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0) {
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
- #endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0) {
- if ((yychar = yylex ()) < 0)
- yychar = 0;
- #if YYDEBUG
- if (yydebug) {
- yys = 0;
- if (yychar <= YYMAXTOKEN)
- yys = yyname[yychar];
- if (!yys)
- yys = "illegal-symbol";
- printf ("yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
- #endif
- }
- if (yychar == 0)
- goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
- #if YYDEBUG
- if (yydebug)
- printf ("yydebug: after reduction, shifting from state %d \
- to state %d\n", *yyssp, yystate);
- #endif
- if (yyssp >= yyss + yystacksize - 1) {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
- yyoverflow:
- yyerror ("yacc stack overflow");
- yyabort:
- return (1);
- yyaccept:
- return (0);
- }
-